Ответы пользователя по тегу Операционные системы
  • В чем разница между ядром ОС и драйвером?

    Операционная система, в том числе её ядро, предоставляет виртуальные ресурсы (файлы на файловой системе, адресное пространство, TCP/IP-подключения и т.д.), выставляет их в виде API/ABI, а для реализации функций этих ресурсов пользуется в том числе драйверами устройств, помимо логики в самом ядре. Упрощённо говоря, драйвера работают как бы между ядром ОС и аппаратными интерфейсами. Драйвера реализуют различные программные интерфейсы, которые требует от них ядро.

    Если говорить о драйвере в широком смысле, например о современных графических драйверах, то они как правило содержат много логики, исполняющейся в user space, а не только в ядре (см. например UMDF). Например, драйвера видеокарт на Windows реализуют интерфейсы OpenGL и Vulkan в user-space, а в ядре работает лишь небольшой фрагмент кода драйвера.
    Ответ написан
    1 комментарий
  • Операционые системы на дисках?

    Ответ написан
    Комментировать
  • Какую тему выбрать для курсового по ОС?

    А почему вы считаете что эти темы не годятся на курсач? Курсовая - это хорошо сделанная лаба. Не знаю как в вашем вузе, но обычно отчёты стуендтов по лабам не настолько хороши, чтобы их прям некуда было улучшать.

    Качественная реализация, подробное документирование алгоритмов, подробное тестирование и сбор статистики по производительности - вот что отличает лабу от курсача.

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

    У вас кстати требования не то чтобы невыполнимые, но несколько сковывающие в выборе, я про C# + WinAPI. Я бы предложил вам взять FUSE и сделать на нём какую-нибудь ФС (например, читалку из облачного хранилища или простейшую реализацию UnionFS) но тут бы лучше C/C++ и линух.

    Ну или можете пописать алгоритмы организации ThreadPool-а.
    Ответ написан
    2 комментария
  • Как операционная система понимает, сколько нужно очистить память?

    Nipheris
    @Nipheris Куратор тега C++
    Факт 1. malloc и free реализуется не ОС, а рантайм-библиотекой языка C/C++. Да, безусловно, время от времени рантайм библиотека делает системные вызовы для того чтобы получить от ОС адресное пространство, но делается это далеко не на каждый malloc/free.

    Факт 2. Вам нужно чётко понимать, что работаете вы со средствами языка и стандартной библиотеки языка, а не ОС. Если на каком-то устройстве скомпилированная программа на C должна работать без ОС, то и способы реализации функционала malloc/free будут иные.

    Факт 3. Алгоритмы, реализующие работу malloc и free, хранят довольно много служебной информации для себя, в частности размер и положение выделенных блоков. Вы не имеете непосредственного доступа к этой информации, но это не значит что её нет. Её достаточно как минимум для того, чтобы выделять вам новые блоки и корректно освобождать старые. Такие алгоритмы называются менеджерами памяти. Кстати в этой незамысловатой статье на вики написано о так называемой иерархии менеджеров памяти. Если вы ознакомитесь с этим понятием, узнаете наверняка больше, чем из всех ответов вместе взятых.
    Ответ написан
    Комментировать