Объясните, что такое операционная система.
Операционная система является наиболее важным типом компьютера, на котором软件
, который управляет ресурсами и процессами компьютера, а также всем аппаратным и программным обеспечением. Он обеспечивает промежуточный уровень между компьютерным оборудованием и программным обеспечением.
Обычно на компьютере запущено много приложений, и всем им необходимо взаимодействовать с памятью и процессором.Цель операционной системы — обеспечить точное выполнение этих обращений и взаимодействий.
Объясните, каково основное назначение операционной системы.
Операционная система — это часть программного обеспечения, имеющая три основные цели.
- Управляйте ресурсами компьютера, включая ЦП, память, дисковые накопители, принтеры и многое другое.
- Предоставляет графический интерфейс, который, как мы описали ранее, обеспечивает мост между пользователем и компьютером.
- Обслуживая другое программное обеспечение, операционная система взаимодействует с программным обеспечением, чтобы выделить ему любые необходимые ресурсы, необходимые для работы.
Какие существуют типы операционных систем
Операционная система обычно предварительно устанавливается перед покупкой компьютера. Большинство пользователей будут использовать операционную систему по умолчанию, но вы также можете обновить или даже изменить операционную систему. Но распространенных операционных систем всего три:Windows, macOS и Linux.
Структура операционной системы
Монолитная система
В большинстве систем вся система работает как одна программа в режиме ядра. Вся операционная система написана как набор программ, которые связаны друг с другом, образуя большую исполняемую двоичную программу.Такая система называется монолитной системой.
При построении фактической объектной программы в монолитной системе все отдельные процедуры (или содержащие их файлы) сначала компилируются, а затем все связываются в один исполняемый файл с помощью системного компоновщика.
В монолитной системе для каждого системного вызова будет служебная программа, которую необходимо обеспечить и запустить. Необходим набор утилит, дополняющих функциональные возможности, требуемые сервисной программе, такие как выборка данных из пользовательской программы. Различные процессы можно разделить на трехуровневую модель.
Многие операционные системы поддерживают дополнительные расширения в дополнение к основной операционной системе, которая загружается при первом запуске компьютера. Например, драйверы устройств ввода-вывода и файловые системы. Эти части могут быть загружены по запросу. в UNIX они называются共享库(shared library)
, в винде это называется动态链接库(Dynamic Link Library,DLL)
. их расширение.dll
,существуетC:\Windows\system32
В каталоге более 1000 файлов DLL, поэтому не удаляйте файлы диска C легко, иначе он может взорваться.
многоуровневая система
Многоуровневые системы используют слои для разделения различных функциональных блоков. Каждый уровень взаимодействует только со слоями выше и ниже этого уровня. Каждый слой использует нижний слой для выполнения своей функции. Связь между уровнями осуществляется через предопределенные фиксированные интерфейсы.
микроядро
Для достижения высокой надежности необходимо разделить операционную систему на небольшие модули, которые можно лучше разделить между уровнями.Только один модуль — микроядро — работает в режиме ядра, а остальные модули могут использоваться как обычные модули. , Пользовательский процесс запущен. Поскольку каждый драйвер устройства и файловая система рассматриваются как обычный пользовательский процесс, ошибки в этих модулях приведут к сбою этих модулей, но не всей системы.
MINIX 3
Это репрезентативная работа микроядра, и его конкретная структура выглядит следующим образом.
Вне ядра система состоит из трех уровней, каждый из которых работает в пользовательском режиме, а нижний уровень — это драйвер устройства. Поскольку все они работают в пользовательском режиме, они не могут физически получить доступ к пространству портов ввода-вывода и не могут напрямую выполнять команды ввода-вывода. Вместо этого, чтобы иметь возможность запрограммировать устройство ввода-вывода, драйвер создает структуру, указывающую, какое значение параметра записывается в какой порт ввода-вывода, и подтверждает вызов ядра, тем самым завершая вызов.
клиент-серверная модель
Стратегия микроядерного мышления заключается в разделении процессов на две категории:服务器
, каждый сервер используется для предоставления услуг;客户端
, воспользуйтесь этими услугами. Этот режим называется客户-服务器
модель.
В модели клиент-сервер есть два носителя.Одна из них состоит в том, что компьютер одновременно является клиентом и сервером.Таким образом, операционная система будет иметь некоторую оптимизацию,но в целом клиент и сервер находятся на разных машинах. они связаны через локальную сеть или глобальную сеть.
Клиент взаимодействует с сервером, отправляя сообщения, и клиенту не нужно знать, обрабатываются ли эти сообщения на локальном компьютере или отправляются по сети на удаленный компьютер для обработки. Для клиента оба случая одинаковы: и отправить запрос, и получить ответ.
Что такое пейджинг по запросу
В операционной системе процессы загружаются в память единицами страниц, а пейджинг по требованию — это虚拟内存
метод управления. В системах, использующих пейджинг по требованию, это происходит только при попытке доступа к диску, на котором находится страница, и эта страница еще не находится в памяти.缺页异常
, операционная система копирует страницы диска в память.
Преимущества многопроцессорных систем
С постоянным увеличением количества процессоров наша компьютерная система превратилась из автономной системы в многопроцессорную систему.Пропускная способность многопроцессорной системы относительно высока.Многопроцессорная система имеет несколько параллельных процессоров, и эти процессоры совместно использовать часы, память и шину., периферийные устройства и т. д.
Поскольку многопроцессорные системы могут совместно использовать ресурсы, они могут увеличивать ресурсы, сокращать расходы и экономить деньги. Также повышается надежность всей системы.
что такое ядро
В компьютере ядро — это компьютерная программа, которая является ядром операционной системы и управляет всем в операционной системе. Ядро обычно является первой программой, загружаемой до загрузки программ загрузчиком.
Здесь нужно знать, чтоboot loader
.
Загрузчик, также известный как загрузчик, представляет собой программу, которая помещает операционную систему компьютера в память. При включении питания или при перезагрузке компьютера BIOS выполняет некоторые начальные тесты, а затем передает управление тому месту, где находится загрузчик.
主引导记录(MBR)
.
Что такое система реального времени
Операционные системы реального времени предъявляют строгие требования ко времени, а операционные системы реального времени делятся на два типа:Жесткий режим реального времени и мягкий режим реального времени
硬实时操作系统
Оговаривается, что определенное действие должно быть завершено или выполнено в течение определенного времени.Например, в цеху по производству автомобилей сварочный аппарат должен завершить сварку в течение определенного времени.Слишком ранняя или слишком поздняя сварка приведет к необратимому повреждению машина.
软实时操作系统
Хотя нежелательно время от времени нарушать окончательный лимит времени, это все же допустимо. и не нанесет необратимого ущерба. Например, цифровое аудио, мультимедиа и мобильные телефоны — все это программные операционные системы реального времени.
Вы можете просто понять два индикатора жесткого реального времени и мягкого реального времени:Должна ли она быть завершена вовремя и нанесен ли серьезный ущерб.
что такое виртуальная память
虚拟内存
Это схема выделения памяти и механизм, который можно использовать для облегчения выделения памяти. Мы знаем, что приложения загружаются в память страницами. Но не все страницы загружаются в память, а аппаратное и программное обеспечение компьютера восполняет нехватку памяти за счет временного переноса данных из ОЗУ на диск. Без виртуальной памяти, как только вы заполните память вашего компьютера, компьютер сообщит вам
о нет,Извините, вы больше не можете загружать приложения. Закройте другое приложение, чтобы загрузить новое.. С виртуальной памятью компьютер может просмотреть недавно неиспользованную область памяти и скопировать ее на жесткий диск. Виртуальная память реализована по технологии копированияДевушка, подойди и посмотри, как мой брат может установить столько программКапитал. Копирование автоматическое, вы не можете ощутить его наличие.
Что такое процесс и таблица процессов
进程
Это экземпляр исполняемой программы, например, веб-программа — это процесс, оболочка — это процесс, типора редактора статей — тоже процесс.
Операционная система отвечает за управление всеми запущенными процессами, операционная система выделяет каждому процессу определенное время, чтобы занять ЦП, и операционная система также выделяет определенные ресурсы для каждого процесса.
Чтобы отслеживать состояние активности каждого процесса, операционная система поддерживает进程表
. Внутри таблицы процессов перечислены статус каждого процесса и ресурсы, используемые каждым процессом.
курсы.На данный момент.вт.Сумма/ЛегендаОнлайн/ОС…На этом веб-сайте есть анимация о смене состояния процесса, что очень приятно.
Что такое поток, разница между потоком и процессом
Это еще один распространенный вопрос, давайте ответим на него с точки зрения операционной системы.
Выше мы упоминали, что процесс — это экземпляр работающей программы, а поток — это фактически один поток в процессе.Поскольку поток имеет определенные атрибуты в процессе, поток также называется облегченным процессом. Если браузер является процессом, то каждая вкладка в браузере может рассматриваться как поток.
Вот разница между потоком и процессом, удерживающим ресурсы
Потоки не так независимы, как процессы, и данные будут совместно использоваться потоками.
Накладные расходы на создание потока намного меньше, чем на процесс, потому что для создания потока требуется только堆栈指针
и程序计数器
Вот и все, а создание процесса требует от операционной системы выделения нового адресного пространства, ресурсов данных и т. д., что относительно дорого.
Каковы преимущества использования многопоточности
Многопоточность — это одна из базовых грамот, которые должны знать программисты, поэтому вот некоторые преимущества многопоточного программирования.
- Возможность улучшить порядок ответов пользователям
- Разделение ресурсов в процессах
- более экономичный
- Умение иметь четкое представление о многопоточных архитектурах
Что такое алгоритм планирования RR
RR(round-robin)
Алгоритм планирования в основном нацелен на систему с разделением времени.Алгоритм планирования RR будет циклически выделять одну и ту же часть кванта времени каждому процессу.Алгоритм планирования RR не имеет концепции приоритета. Реализация этого алгоритма относительно проста, и каждый поток занимает квант времени, поэтому проблема нехватки потока отсутствует.
Вызывает блокировку системы
Возникновение взаимоблокировки должно одновременно соответствовать следующим четырем условиям.
-
互斥(Mutual Exclusion)
: только один процесс может использовать ресурс одновременно. Если другой процесс запрашивает ресурс, запрашивающий процесс должен быть отложен до тех пор, пока ресурс не будет освобожден. -
保持并等待(Hold and Wait)
: Должен быть процесс, который содержит хотя бы один ресурс и ожидает получения ресурсов, которые в настоящее время удерживаются другими процессами. -
无抢占(No Preemption)
: Ресурс не может быть вытеснен, то есть ресурс может быть автоматически освобожден процессом-владельцем только после того, как процесс завершит свою задачу. -
循环等待(Circular Wait)
: Должен существовать набор ожидающих процессов {p0,p1,.....pn}, таких, что p0 ожидает ресурса, удерживаемого p1, p1 ожидает ресурса, удерживаемого p2, а pn-1 ожидает для ресурса, удерживаемого pn, в то время как pn ожидает ресурса, удерживаемого p0.
Различные уровни RAID
RAID называется磁盘冗余阵列
, именуемый磁盘阵列
. Использование технологии виртуализации для объединения нескольких жестких дисков в одну или несколько групп дисковых массивов позволяет повысить производительность или избыточность данных.
RAID имеет разные уровни
- RAID 0 — чередующийся дисковый массив без отказоустойчивости
- RAID 1 — зеркалирование и дуплекс
- RAID 2 — код исправления ошибок в памяти
- RAID 3 — четность с чередованием битов
- RAID 4 — контроль четности с чередованием блоков
- RAID 5 — распределенная четность с чередованием блоков
- RAID 6 — резервирование P+Q
Что такое ДМА
Китайское название DMA直接内存访问
, что означает, что ЦП предоставляет модулю ввода-вывода разрешение на чтение или запись в память без участия ЦП. То есть DMA может не требовать участия CPU. Этим процессом управляет микросхема, называемая DMA Controller (DMAC). Поскольку устройства DMA могут передавать данные непосредственно между памятью, а не использовать ЦП в качестве посредника, это может уменьшить перегрузку шины. DMA улучшает параллелизм системы, позволяя ЦП выполнять задачи, в то время как система DMA передает данные по системной шине и шине памяти.
В чем преимущества многопоточного программирования
Прости, я не могу не хихикать
Грубо говоря, почему один поток должен справляться с несколькими потоками? Конечно, чтобы улучшить программуделать видпараллельная возможность. Многопоточность在某些情况下
Это может заставить вашу программу работать быстрее, поэтому появляются многоядерные процессоры, но появление многоядерных процессоров может вызвать проблемы с согласованностью данных, но программисты могут решить эти проблемы. С другой стороны, многопоточное программирование может улучшить навыки программирования и мышление программистов. В то же время это также может улучшить способность программистов к управлению.Если вы относитесь к каждому потоку потока как к героине тайм-менеджмента г-на Луо и можете координировать отношения всех друзей P во времени, то вы также являетесь супер- умный программист, так что да Кто сказал, что программисты не могут управлять? Дуг Леа великолепен! ! !
ps: Инструментарий JUC, разработанный Дугом Ли, здесь не добавлена собачья голова.
Что такое драйвер устройства
В компьютере драйвер устройства — это компьютерная программа, которая управляет определенным устройством, подключенным к компьютеру, или управляет им. Драйверы предоставляют программный интерфейс для взаимодействия с оборудованием, позволяя операционной системе и другим компьютерным программам получать доступ к конкретному устройству без необходимости знать особенности его оборудования.
связь между процессами
концепция коммуникации
Существует много методов связи между процессами. Прежде всего, вам нужно понять следующие концепции
-
Состояние гонки: то есть, когда два или более потока изменяют общие данные одновременно, что влияет на правильность программы, это называется
竞态条件(race condition)
. -
Критический раздел: не только
共享资源
Это вызовет состояние гонки. На самом деле, общие файлы и общая память также вызовут состояние гонки. Так как же их избежать? Может быть, одно предложение может резюмировать это:Предотвратить одновременное чтение и запись общих ресурсов (включая общую память, общие файлы и т. д.) одним или несколькими процессами.. Другими словами, нам нужен互斥(mutual exclusion)
Условный, то есть, если процесс использует общие переменные и файлы определенным образом, другим процессам, кроме процесса, запрещается делать такие вещи (доступ к унифицированным ресурсам).Хорошее решение должно содержать следующие четыре условия
- Два процесса не могут находиться в критической секции одновременно.
- Не следует делать никаких предположений о скорости и количестве процессоров.
- Процессы вне критической секции не должны блокировать другие процессы
- Ни один процесс не может бесконечно ждать входа в критическую секцию.
- Взаимное исключение с ожиданием занятости: когда процесс изменяет ресурсы, другие процессы должны ждать, а процессы должны быть взаимоисключающими Решения, которые мы обсуждаем, на самом деле основаны на взаимном исключении с ожиданием занятости.
решение
Связь между процессами выражается в профессиональных терминах какInter Process Communication,IPC
, он в основном имеет следующие способы связи
-
消息传递
: Передача сообщений — это механизм для реализации связи и синхронного ожидания между процессами.При использовании передачи сообщений связь между процессами не требует общих переменных, и связь может осуществляться напрямую; передача сообщений делится на отправителя и получателя. -
先进先出队列
: Очередь FIFO относится к связи между двумя несвязанными процессами. Два процесса могут взаимодействовать друг с другом. Это полнодуплексный метод связи. -
管道
: Каналы используются для связи между двумя связанными процессами.Это полудуплексный метод связи.Если требуется полный дуплекс, требуется еще один канал. -
直接通信
: При таком способе взаимодействия между процессами существует только одна связь между процессами, и имена двух взаимодействующих сторон должны быть четко определены между процессами. -
间接通信
: Косвенная связь означает, что две взаимодействующие стороны не будут устанавливать соединение напрямую, а найдут посредника, который может быть объектом и т. д., где процесс может размещать сообщения и удалять сообщения из него, чтобы достичь цели межпроцессорного взаимодействия. - процесс коммуникации. -
消息队列
: Очередь сообщений — это связанный список сообщений, хранящихся в ядре, который идентифицируется идентификатором очереди сообщений, который может обеспечить полнодуплексное коммуникационное соединение между различными процессами. -
共享内存
: Общая память — это использование памяти между всеми процессами для установления соединения, этот тип должен синхронизировать доступ процессов для защиты друг друга.
модель межпроцессного состояния
cat chapter1 chapter2 chapter3 | grep tree
Первый процессcat
, соедините и выведите три файла. Второй процессgrep
, который выбирает из входных данных ключевое слово, содержащееtree
, в зависимости от относительной скорости двух процессов (которая зависит от относительной сложности двух программ и квантов времени ЦП, выделенных каждому), может произойти следующее:grep
Готов к запуску, но процесс ввода не завершен, поэтому процесс grep необходимо заблокировать до завершения ввода.
Когда процесс запускается, он может пройти через следующие состояния
На рисунке присутствуют три состояния
-
运行态
, состояние выполнения относится к времени, когда процесс фактически занимает квант времени процессора для выполнения -
就绪态
, состояние готовности относится к состоянию готовности к выполнению, но находится в состоянии готовности, поскольку выполняются другие процессы. -
阻塞态
, процесс не может быть запущен, если не произойдет какое-либо внешнее событие
Логически, рабочее состояние и состояние готовности очень похожи. В обоих случаях это означает процесс可运行
, но во втором случае кванты процессорного времени не получаются. Третье состояние отличается от первых двух тем, что процесс не может работать, а также не может работать, когда ЦП простаивает.
Три состояния включают переключение между четырьмя состояниями, которое происходит, когда операционная система обнаруживает, что процесс не может продолжать выполнение.状态1
циклический, в некоторых системах процесс выполняет системные вызовы, такие какpause
, чтобы получить заблокированное состояние. В других системах, включая UNIX, процесс автоматически завершается, когда нет доступных входных данных для чтения из канала или специального файла (например, терминала).
И переход 2, и переход 3 вызываются планировщиком процесса (частью операционной системы), сам процесс не знает о существовании планировщика. Появление перехода 2 указывает на то, что планировщик процессов решил, что текущий процесс выполняется достаточно долго, чтобы другим процессам пора было выполнять квант времени ЦП. Переход 3 происходит, когда все остальные процессы уже запущены и настало время для первого процесса восстановить квант времени процессора.
Планирование программы относится к решению, какой процесс будет выполняться первым и как долго, что является важным моментом.. Было разработано множество алгоритмов, чтобы попытаться сбалансировать общую эффективность системы с конкурирующими требованиями отдельных процессов.
Переход 4 происходит, когда происходит внешнее событие, которого ожидает процесс (например, после ввода некоторых данных извне). Если в это время не запущен ни один другой процесс, немедленно запускается переход 3, и процесс начинает выполняться, в противном случае процесс находится в фазе готовности, ожидая, пока ЦП будет бездействовать, прежде чем его очередь будет запущена.
Какие есть алгоритмы планирования
Алгоритмы планирования делятся на три категории: планирование в пакетной обработке, планирование в интерактивных системах и планирование в системах реального времени.
Планирование партиями
Первый пришел первый обслужен
Это как первый пришел первый обслужен. . . Вероятно, простейшая конструкция алгоритма планирования без вытеснения такова.先来先服务(first-come,first-serverd)
. Используя этот алгоритм, процессоры выделяются процессам в порядке запросов. По сути, это будет ожидающая очередь готовых процессов. Когда первая задача входит в систему извне, она сразу же запускается и может выполняться в течение любого промежутка времени. Он не ломается, потому что он слишком долго работает. Когда поступают другие задания, они помещаются в конец очереди готовности. Когда работающий процесс блокируется, запускается первый процесс в очереди ожидания. Когда заблокированный процесс возвращается в состояние готовности, он будет похож на вновь поступившую задачу и будет поставлен в очередь в конце очереди, то есть в конце всех процессов.
Сила этого алгоритма в том, что его легко понять и запрограммировать.В этом алгоритме односвязный список записывает все готовые процессы. Чтобы выбрать процесс для запуска, просто удалите процесс из головы очереди; чтобы добавить новое задание или заблокировать процесс, просто добавьте задание или процесс в конец очереди. Это очень простая реализация.
Однако у принципа «первым пришел - первым обслужен» есть и недостаток, то есть нет отношения приоритетов.Представьте, если в очереди стоят 100 процессов ввода-вывода, а 101-й процесс интенсивно использует ЦП, разве ему не нужно ждать? for 100 Процесс ввода-вывода будет ждать только после запуска процесса, интенсивно использующего ЦП, что невозможно на практике, поэтому появление приоритетных или вытесняющих процессов необходимо для определения приоритетов важных процессов для запуска.
сначала самая короткая работа
В пакетной обработке используется второй алгоритм планирования.最短作业优先(Shortest Job First)
, будем считать, что время работы известно. Например, страховая компания, поскольку подобная работа выполняется каждый день, можно довольно точно предсказать, сколько времени потребуется для обработки пакета из 1000 требований. Когда во входной очереди запускается несколько одинаково важных заданий, планировщик должен использовать алгоритм поиска кратчайшего первого задания.
Как показано на рисунке а выше, имеется 4 задания A, B, C, D со временем выполнения 8, 4, 4 и 4 минуты соответственно. Работая в порядке, показанном на диаграмме, время оборота для A составляет 8 минут, B — 12 минут, C — 16 минут, D — 20 минут, а среднее время — 14 минут.
Теперь рассмотрим запуск 4 заданий с использованием алгоритма «Сначала самое короткое задание», как показано на рис. b выше. Текущее время обработки составляет 4, 8, 12, 20, а среднее время составляет 11 минут, что может доказать, что самое короткое задание сначала является оптимальным. Рассмотрим случай 4 заданий со временем выполнения a, b, c, d. Первая работа заканчивается в момент времени а, вторая — в момент времени а + b и так далее. Среднее время оборота составляет (4a + 3b + 2c + d) / 4 . Очевидно, что a оказывает наибольшее влияние на среднее значение, поэтому a должна быть самой короткой первой работой, за которой следует b, затем c и, наконец, d. Это может повлиять только на собственное время выполнения.
Следует отметить, что алгоритм кратчайшего задания является оптимальным, когда все процессы могут выполняться.
Кратчайшее оставшееся время сначала
Упреждающая версия кратчайшего задания сначала называется最短剩余时间优先(Shortest Remaining Time Next)
алгоритм. Используя этот алгоритм, планировщик всегда выбирает процесс с наименьшим оставшимся временем выполнения для запуска. Когда поступает новое задание, все его время сравнивается с оставшимся временем текущего процесса. Если новый процесс занимает меньше времени, чем текущий процесс, текущий процесс приостанавливается и запускается новый процесс. Таким образом, краткосрочные рабочие места могут быть хорошо обслужены.
Планирование в интерактивных системах
Интерактивные системы обычно используются на персональных компьютерах, серверах и других системах, поэтому необходимо обсудить интерактивное планирование.
круговое планирование
Один из старейших, простейших, честных и наиболее широко используемых алгоритмов —轮询算法(round-robin)
. Каждому процессу назначается период времени, называемый时间片(quantum)
, процесс может выполняться в течение этого интервала времени. Если процесс все еще выполняется в конце временного интервала, ЦП вытесняется и назначается другому процессу. Если процесс блокируется или завершается до окончания кванта времени, процессор немедленно переключается. Алгоритм опроса относительно прост в реализации. Что делает планировщик, так это поддерживает список запущенных процессов, как на рисунке ниже, и когда у процесса заканчиваются кванты времени, он перемещается в конец очереди, как b на рисунке ниже.
приоритетное планирование
Дело в том, что не все процессы имеют одинаковый приоритет. Например, иерархия в университете начинается с деканов, затем профессоров, секретарей, вспомогательного персонала и, наконец, студентов. Это достигается за счет учета внешней ситуации.优先级调度(priority scheduling)
Его основная идея очень ясна, каждому процессу дается приоритет, и процесс с более высоким приоритетом запускается первым.
Но это не означает, что процесс с высоким приоритетом может работать вечно, планировщик будет снижать приоритет текущего процесса во время каждого прерывания по часам. Переключение процесса происходит, если это действие приводит к падению его приоритета ниже приоритета следующего по величине процесса. В качестве альтернативы каждому процессу может быть назначен максимальный интервал времени, разрешенный для запуска. Когда интервал времени заканчивается, следующий высокоприоритетный процесс получает шанс запуститься.
сначала самый короткий процесс
Для пакетных систем, поскольку самая короткая задача сначала имеет самое короткое время отклика, один из способов состоит в том, чтобы строить догадки на основе прошлого поведения процесса и выполнять ту, которая имеет наименьшее предполагаемое время выполнения. Предположим, что расчетное время выполнения каждой команды на каждом терминале равноT0
, теперь предположим, что время его следующего выполнения измеряется какT1
, расчетное время может быть улучшено путем взвешивания двух значений, т.е.aT0+ (1- 1)T1
. Выбирая значение a, вы можете решить, следует ли как можно скорее забыть о старых средах выполнения или запомнить их надолго. Когда a = 1/2, можно получить следующую последовательность
Видно, что после трех раундов доля T0 в новой оценке снизилась до 1/8.
Этот метод получения следующей оценки путем взятия средневзвешенного значения текущего измерения и предыдущей оценки иногда называют老化(aging)
. Этот метод использует много случаев, когда прогнозируемое значение основано на текущем значении.
расписание лотереи
Существует алгоритм, который может не только дать результаты прогнозирования, но и имеют относительно простую реализацию, которая彩票调度(lottery scheduling)
алгоритм. Его основная идея обеспечивает различные системные ресурсы для процесса.彩票
. Когда принято решение о планировании, лотерейный билет вытягивается случайным образом, и процесс с лотерейным билетом получает ресурс. Например, когда ЦП запланирован, система может проводить 50 лотерейных розыгрышей в секунду, и каждый выигрышный процесс будет вознагражден дополнительным временем работы.
Лотерейный билет можно понимать как бафф, этот бафф с вероятностью 15% позволяет сгенерировать
速度之靴
Эффект.
Планирование справедливого распределения
Если пользователь 1 запускает 9 процессов, а пользователь 2 запускает процесс, используя циклический алгоритм или алгоритм планирования с равным приоритетом, то пользователь 1 получит 90% процессорного времени, а пользователь 2 получит 10% процессорного времени.
Чтобы этого не произошло, в некоторых системах перед планированием учитывается владелец процесса. В этой модели каждому пользователю выделяется некоторое время процессора, а планировщик выбирает процесс и применяет его. Таким образом, если каждый из двух пользователей будет иметь гарантированный 50-процентный квант времени ЦП, то независимо от того, сколько процессов у пользователя, они получат одинаковую долю ЦП.
Каковы алгоритмы замены страницы?
алгоритм | Примечания |
---|---|
оптимальный алгоритм | Недостижимо, но может быть использовано в качестве эталона |
Алгоритм NRU (не недавно использовавшийся) | Аналогично алгоритму LRU |
Алгоритм FIFO (First In First Out) | Можно отбросить важные страницы |
алгоритм второго шанса | Большое улучшение по сравнению с FIFO |
тактовый алгоритм | фактическое использование |
Алгоритм LRU (наименее новый) | Отлично, но труднодостижимо |
Алгоритм NFU (наименее часто потребляемый) | очень похоже на LRU |
Алгоритм старения | Эффективный алгоритм приближенного LRU |
алгоритм рабочего набора | Это дорого реализовать |
Алгоритм рабочего набора часов | более эффективный алгоритм |
-
最优算法
Заменяет последнюю страницу, к которой нужно получить доступ, на текущей странице. К сожалению, невозможно определить, какая страница была посещена последней.因此实际上该算法不能使用
. Однако его можно использовать в качестве эталона, по которому оцениваются другие алгоритмы. -
NRU
Алгоритм классифицирует атмосферу страницы по четырем категориям в соответствии с состоянием бита R и бита M. Страница выбирается случайным образом из категории с наименьшим номером. Алгоритм NRU прост в реализации, но его производительность не очень высока. Существуют лучшие алгоритмы. -
FIFO
Порядок, в котором страницы загружаются в память, отслеживается, и страницы помещаются в связанный список. Можно удалить самые старые страницы, которые все еще используются, поэтому этот алгоритм также не является хорошим выбором. -
第二次机会
Алгоритм представляет собой модификацию FIFO, которая проверяет, используется ли страница, прежде чем удалить ее. Если страница используется, она зарезервирована. Это улучшение значительно повышает производительность. -
时钟
Алгоритмы — это еще одна форма реализации алгоритмов второго шанса.Алгоритм часов имеет производительность, аналогичную алгоритму второго шанса, но для его выполнения требуется меньше времени. -
LRU
Алгоритм очень хороший алгоритм, но не特殊的硬件(TLB)
сложно осознать. Без аппаратного обеспечения алгоритм LRU не может быть использован. -
NFU
Алгоритм является приближением к LRU, и его производительность не очень высока. -
老化
Алгоритм представляет собой реализацию, которая ближе к алгоритму LRU и может быть реализована лучше, поэтому это хороший выбор. - Оба последних алгоритма используют алгоритм рабочего множества. Алгоритм рабочего набора обеспечивает разумную нагрузку на производительность, но его реализация сложна.
WSClock
— еще один вариант, который не только обеспечивает хорошую производительность, но и может быть эффективно реализован.
Лучшими алгоритмами являются алгоритм старения и алгоритм WSClock.. Они основаны на алгоритмах LRU и рабочих наборов соответственно. Все они имеют хорошую производительность и могут быть эффективно реализованы. Существует несколько других хороших алгоритмов, но эти два, вероятно, наиболее важны на практике.
Какие показатели влияют на планировщик
Существует несколько факторов, определяющих качество планировщика.
- Использование процессора:
Процент времени, в течение которого ЦП выполняет задачи (то есть не простаивает).
- время ожидания
Это время, когда процессы выполняются по очереди, то есть время, когда процесс переключается
- пропускная способность
Количество завершенных процессов в единицу времени
- Время отклика
Это время, прошедшее с момента отправки процесса до получения полезных результатов.
- Время оборота
Время, прошедшее с момента отправки процесса до завершения процесса.
Что такое зомби-процесс
Процесс-зомби — это процесс, который завершился и находится в остановленном состоянии, но все еще существует в таблице процессов. Зомби-процессы обычно происходят в родительско-дочерних процессах, потому что родительский процесс все еще должен прочитать статус выхода своего дочернего процесса.