М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
alinaantonova06
alinaantonova06
27.04.2021 19:12 •  Информатика

Опишите систему хранения файлов на диске (кратко)

👇
Ответ:
lenavinnik80
lenavinnik80
27.04.2021
Жесткий диск делится на дорожки - концентрические окружности, покрывающие поверхность диска
Каждая дорожка делится на секторы, размер сектора - 512 байт
Затем сектора объединяются в кластеры, кластер содержит 2^N секторов. Кластер является наименьшей единицей адресации к данным. Это делается для ускорения работы файловой системы. То есть файловая система обращается не к сектору (который является минимальной физической единицей хранения данных), а к кластеру, в который объединено несколько секторов (который является минимальной единицей адресации к данным, т.е файловая система не может обращаться напрямую к сектору). 
Например, в файловой системе FAT есть так называемая таблица размещения файлов, в которую записываются данные о каждом кластере. Т.к она обращается к кластерам, в которые объединены сектора, то эта таблица содержит меньше элементов, что существенно увеличивает быстродействие
Размер кластера можно задать при форматировании диска. Чем длиннее кластер (чем больше секторов в себе содержит), тем меньше таблица размещения файлов и бОльшая скорость, но есть и обратная сторона - нерациональное использование памяти, потому что любой файл, насколько маленький он бы не был занимает весь кластер и некоторые сектора в нем могут оказаться просто пустыми. Даже если файл большой и занимает несколько секторов, то последний кусочек с бОльшей долей вероятности займет не полностью последний кластер.
Если же указать более маленький размер кластера, то уменьшится быстродействие (т.к увеличится количество кластеров), но память будет расходоваться меньше и будет образовываться меньше пустот.

Стоит упомянуть, что объем хранящихся файлов напрямую влияет на расход памяти. Много мелких файлов как правило сильнее "забивают" память, нежели мало больших. Они могут иметь одинаковый размер в сумме, но при записи на диск мелкие файлы израсходуют больше места, так как каждый файл будет занимать весь кластер, но не все сектора.

И интереса ради стоит упомянуть, что в связи с неэффективностью файловой системы (например, при слишком большом размере кластера) потери могут составлять среднем от 25% до 40% от полной емкости жесткого диска

P.S В общем, интересно учиться на кибернетике в ВУЗе)) Столько нового узнаешь. Главное понять, что к чему, а там уже перескажешь как-нибудь
4,8(6 оценок)
Открыть все ответы
Ответ:
bar569
bar569
27.04.2021
Как-то так
#include <iostream>
using namespace std;
int main(){    cout << "Vvedute kol-vo ocenok" << endl;
    int n,i,a,Four,Five;    n = i = a = Four = Five = 0;
    cin >> n;
    for (i = 1; i <= n; i++)    {        cin >> a;        if (a == 4){         Four++;}  else if (a == 5)      {         Five++;      }    }    if (Four > Five){   cout << "Four" << endl;} else if (Five > Four)      {   cout << "Five" << endl;      }      else      {         cout << "Equal"<< endl;      }      cout << "Kol-vo 4: " << Four << " Kol-vo 5: " << Five << endl;    return 0;}
4,5(78 оценок)
Ответ:
Yanawer
Yanawer
27.04.2021
В начале мы создаем массив случайных элем.
Потом работаем с ним.
Нам нужны 2 переменные:
1 - переменная, для сохранения результата (номера).
2 - переменная флажок.
Мы обходим весь массив ПО СТОЛБЦАМ.
В начале обхода конкретного столбца переменной флажка присвоим 1.
Сравниваем текущий элемент столбца с последующим,
если они не равны то ставим флажок 0

Код:
//Размерность массива
const n = 3;
//Сам массив
var 
ar : array[1..n,1..n] of integer;
//Переменные для работы с массивом
var 
i,j : integer; 
//Переменные для поиска столбца
//f - переменная флажок, которая по окончанию обхода столбца будет
//показывать одинаковы ли элементы в нем
//numb - переменная, в которой сохраним номер столбца с
//одинаковыми значениями элементов.
var 
f,numb : integer;
begin
//Создание и вывод на экран массива
//Элементы генерируются случайным образом
//  
for i:=1 to n do 
begin   
for j:=1 to n do   
begin     
ar[i,j] := random(2);     
write(ar[i,j]:3);   
end;   
writeln;   
end;  
// 

//Вот сам алгоритм поиска
//
//Записываем в numb значение -1
//Если в процессе работы значение не изменится (-1)
//То означает, что в массиве нет одинаковых столбцов
  numb := -1; 

//Идем по массиву
//
for j:=1 to n do
//Момент начала конкретного j столбца  
  begin    
//записываем в f значение 1
  //Предполагаем, что столбец одинаков
  //Если в конце обхода конкретного столбца значение f=1
  //Значит, что данный столбец одинаков
  f := 1;    
 
//Идем по столбцу
// n-1
//(т.к сравниваем текущий со следующим)
for i:=1 to n-1 do   
begin  
//Сравниваем текущий элемент столбца, со следующим     
if (ar[i,j] <> ar[i+1,j]) then
    //Если они не равны, то изменяем значение флажка f на 0       
    f := 0;   
end; 
//Конец обхода конкретного столбца  
 
//Если столбец одинаков   
if (f = 1) then
    //то записываем его номер в numb     
    numb := j;  
end;  
//  

//Вывод результата 
if (numb <> -1) then   
writeln('Столбец №: ',numb) 
else   
writeln('Нет ни одного одинакового столбца');    
end.
4,8(86 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ