где реализовано планирование диска

Недавно я изучаю часть диспетчеризации дисков в операционной системе. И я мог понять различные алгоритмы для этой проблемы, такие как FCFS, LIFO, SSTF, SCAN и так далее. Но мне было интересно, где эти алгоритмы реализованы?

Я не думаю, что операционная система является ответом, потому что ОС не может знать подробности об устройствах ввода-вывода. Так они реализованы на самих устройствах? Может ли кто-нибудь прояснить это для меня? Любая связанная литература или ссылки будут оценены.


person Mengfan Ma    schedule 11.03.2018    source источник
comment
ОС не может знать подробности об устройствах ввода-вывода... тогда это довольно бесполезная ОС...   -  person bolov    schedule 11.03.2018


Ответы (2)


Простой ответ заключается в том, что в наши дни все это происходит в контроллере привода.

В старые времена операционные системы обычно реализовывали дисковый ввод-вывод в два уровня. Наверху был независимый от дисков логический уровень. Это рассматривало диск как массив блоков. Ниже этого уровня находился физический уровень, на котором диски рассматривались как пластины, дорожки и сектора. Поскольку физические детали у разных дисков различались, физический уровень обычно реализовывался в драйвере устройства, специфичном для диска (или класса дисков).

В эти темные времена вам часто приходилось ждать, пока поставщик дисковода создаст новый драйвер устройства, прежде чем вы сможете обновить свою операционную систему.

В середине 1980-х стало обычным явлением, когда дисковые накопители обеспечивают логический интерфейс ввода/вывода. Драйвер устройства перестал видеть диски/пластины/сектора. Вместо этого он просто видел массив логических блоков. Диск позаботился о физическом расположении и перенаправлении поврежденных блоков (задачах, которые раньше выполняла операционная система). Это позволило одному драйверу устройства управлять несколькими типами устройств, используя один и тот же интерфейс и различаясь только количеством логических блоков.

В наши дни вам будет трудно найти диск, который не обеспечивает логический интерфейс.

Все алгоритмы планирования, связанные с физическим расположением, должны выполняться на жестком диске.

Если вы не занимаетесь проектированием дисковых накопителей, такие алгоритмы планирования совершенно бессмысленны. Если вы изучаете проектирование жестких дисков, ожидайте, что эта профессия скоро исчезнет.

person user3344003    schedule 11.03.2018

На практике расписание дисков (в смысле, например, переупорядочивания ожидающих операций чтения с диска для минимизации задержка вращения) сегодня менее важна, чем в XXм веке.

  • жесткие диски, вероятно, используются меньше в пользу твердотельных накопителей, и они еще более медленные по сравнению с другими. быстрое время доступа к оперативной памяти.

  • сектор диска, видимый ядром, был реорганизован самим контроллером диска, поэтому < адресация href="https://en.wikipedia.org/wiki/Cylinder-head-sector" rel="nofollow noreferrer">CHS (как видно из ядро ОС) не соответствует геометрической реальности

  • жесткий диск сегодня стал умнее, а его внутренний контроллер имеет значительный объем памяти и вычислительные возможности. Протокол SATA имеет некоторые запросы "более высокого уровня" (например, TRIM). Прочтите о SMART и гибридные диски.

Однако код приложения может подсказывать операционной системе шаблоны доступа. Посмотрите, например, в posix_fadvise(2).

Читайте также Операционные системы: три простых шага

person Basile Starynkevitch    schedule 11.03.2018