Глубокое понимание механизма операционной системы Windows (4)

Я, Лиюань Бриз, как ветеран ИТ-индустрии с 25-летним стажем, сегодня мы заново рассмотрим Windows, систему, с которой мы знакомы и с которой больше не можем быть знакомы.

Мы используем операционную систему Windows каждый день, но непосредственно каждый день мы имеем дело не с ядром операционной системы Windows, а с интерфейсом взаимодействия человека и компьютера операционной системы Windows. Этот интерфейс на самом деле является лишь компонентом Windows. операционная система. Интерфейс, который мы используем при использовании системы Linux, — это просто программа в системе Linux. Таким образом, мы не подвергаемся воздействию ядра этих систем. Со временем мы постепенно будем принимать интуитивно понятные вещи, отображаемые в интерфейсе, за саму операционную систему Windows, что на самом деле неверно.

Давайте еще раз рассмотрим операционную систему Windows и рассмотрим типичные особенности и основные функции самой операционной системы Windows. Из функций операционной системы Windows мы можем узнать, что услуги, предоставляемые операционной системой Windows, заключаются в следующем: предоставляется среда для выполнения программ, а предоставляемые услуги включают выполнение программ, операции ввода-вывода, файловые операции, ресурсные распределение и защита, а также обнаружение и исключение ошибок и т. д.

Операционная система Windows заимствует концепцию мультипрограммирования.Так называемая технология мультипрограммирования подразумевает одновременное хранение в памяти двух или более заданий.Эти задания выполняются одновременно и находятся под контролем управляющей программы. Бег вперемешку. Эти задания совместно используют процессоры, периферийные устройства и другие ресурсы.

Обработчик прерываний операционной системы Windows может быть только программой операционной системы, а не прикладной программой. Обработка прерываний — это действие в системе, которое окажет существенное влияние на систему, поэтому разрешено выполнение только программ режима ядра. Прикладная программа обычно относится к пользовательской программе, которая работает в состоянии пользователя и не может выполнять эти операции.

виртуальный

Когда речь идет о виртуализации операционной системы, как вы это понимаете? В основном есть три описания:

①Поскольку компьютер оснащен операционной системой и другим программным обеспечением, он более мощный, чем «голый металл», и более удобный в использовании.Он называется виртуальной машиной. Поскольку сама операционная система содержит несколько уровней программного обеспечения, компьютерную систему также можно назвать многоуровневой виртуальной машиной.

②Например, в многоканальной системе с разделением времени использование технологии мультипрограммирования позволяет виртуализировать один физический ЦП в несколько логических ЦП для использования несколькими конечными пользователями.

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

контроль

В операционной системе с разделением времени, такой как Windows, есть программа со следующими функциями:
(1) Чтение текстовых данных из файла.
(2) Сортировка
(3) Запишите отсортированные данные в файл.
Далее, с точки зрения операционной системы с разделением времени по управлению ресурсами и жизненному циклу процесса, мы обсуждаем весь процесс программы от начала до конца, а операционная система обеспечивает его обслуживание и контроль.

Чтение данных из файла осуществляется с помощью системного вызова read. Сначала он создает сообщение, которое содержит такие параметры, как fd (дескриптор файла), buffer (буфер), nbytes (размер) и код сообщения, указывающий тип READ. Затем отправьте это сообщение в файловую систему и заблокируйте процесс, чтобы дождаться ответа файловой системы.После получения сообщения файловая система выполняет поиск в таблице процессов с типом сообщения в качестве нижнего индекса и вызывает соответствующий процесс для обработки. запрос на чтение. После завершения ввода данных операционная система переключается на процесс сортировки и начинает работу по сортировке. После завершения работы по сортировке операционная система вызывает системный вызов записи для завершения, а системный вызов записи записывает данные из буфера процесса в файл, связанный с файловым дескриптором. Очень похоже на системный вызов read, он также требует 3 параметра: fd, buffer, nbytes. Оба системных вызова возвращают количество успешно переданных байтов или сигнализируют об ошибке и возвращают -1.

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

Защищать

Для правильно функционирующей компьютерной системы очень важна защита операционной системы. Однако, чтобы обеспечить большую гибкость для пользователя, пользователь должен быть ограничен как можно меньше. Перечисленные ниже операции обычно защищены. Могу я хотя бы спросить, какие инструкции нужно защитить?
(1) Перейдите в пользовательский режим.
(2) Перейдите в системный режим.
(3) Считайте данные из области хранения, где хранится операционная система.
(4) Записать данные в область хранения, в которой хранится операционная система.
(5) Получить инструкции из области хранения, в которой хранится операционная система.
(6) Включите таймер.
(7) Выключите таймер.

Операции 2 и 4 должны быть защищены. Потому что эти две операции предназначены для изменения содержимого самой операционной системы. Если оставить это на усмотрение пользователя, это приведет к повреждению операционной системы и в конечном итоге приведет к ее неправильной работе или сбою, поэтому ее следует защищать при любых обстоятельствах. Некоторые другие операции также должны быть защищены в целом, но даже если эти операции оставлены на усмотрение пользователя, они не так разрушительны, как две вышеуказанные операции.

функция

Поговорим о разнице и связи библиотечных функций и системных вызовов.

Отличие: библиотечные функции являются частью языка или приложения и могут выполняться в пользовательском пространстве. Системный вызов является частью операционной системы, программным интерфейсом, предоставляемым ядром пользователю и выполняемым в пространстве ядра.

Соединение: многие библиотечные функции используют системные вызовы для реализации функциональности. Эффективность выполнения библиотечных функций, не использующих системные вызовы, обычно выше, чем у системных вызовов, поскольку при использовании системных вызовов требуется переключение контекста и преобразование состояния (из режима пользователя в режим ядра).

планирование

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

Я думаю, мы можем. В системе пакетной обработки задания последовательно вводятся на ленту в режиме автономного ввода, а программа-диспетчер последовательно выполняет задания на ленте, и пользователь не может вмешиваться в ее работу при выполнении задания. В зависимости от истории разработки систему пакетной обработки можно разделить на одноканальную систему пакетной обработки и многоканальную систему пакетной обработки.Основное отличие состоит в том, что в памяти одновременно находятся одно или несколько заданий. Когда программа в многоканальной системе пакетной обработки приостанавливается из-за запроса ввода-вывода, ЦП переключается на запуск другой программы с помощью технологии прерываний.

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

инструкция

Затем давайте посмотрим на операционную систему с точки зрения инструкций.Предполагая, что инструкции операционной системы Windows загружены в регистр инструкций, какие инструкции не заставят ЦП переключиться из пользовательского режима в режим ядра при казнен?

Первая команда DIV R0,R1;(R0)/(R1)->R0

Вторая команда INT n; генерирует мягкое прерывание

Третья команда НЕ R0, содержимое регистра R0 инвертируется.

Четвертая команда MOV R0,addr; Поместите данные памяти по адресу addr в регистр R0.

В первой команде, если содержимое R1 равно 0, произойдет внутреннее прерывание с переходом из режима пользователя в режим ядра; мягкое прерывание второй команды выполняется в режиме ядра; отрицание регистра третьей команды не будет генерировать прерывание, и он не принадлежит другим ядрам операционной системы, поэтому не изменится на состояние ядра; четвертый адрес — это адрес основной памяти, и для доступа к памяти необходимо войти в состояние ядра.

Об авторе: Ли Юань Вэйфэн, 1981 г.р., старший инженер, магистр технических наук Чжэцзянского университета, руководитель проекта по разработке программного обеспечения, работал программистом, разработчиком программного обеспечения, системным архитектором, одним из первых программистов Windows, лояльным пользователем Visual Studio, C/ Пользователь C++ Автор — ветеран, который учился, усердно работал и боролся в компьютерной индустрии в течение 25 лет.Он пережил эпоху UNIX, эпоху настольного WIN32, эпоху веб-приложений, эпоху облачных вычислений, эпоху мобильных телефонов Android. эпоха больших данных, эпоха ИКТ и эра глубокого обучения искусственного интеллекта, эпоха интеллектуальных машин, я не знаю, какая эпоха будет в будущем, я просто помню, что это путешествие полно трудностей и достижений, и я готов идти с вами дальше, полный надежды.

рекомендация

отblog.csdn.net/wang2015cn/article/details/131749697