Операционная система
Современные операционные системы состоят из одного или нескольких процессоров, оперативной памяти, принтеров, клавиатур, мышей, мониторов, сетевых интерфейсов и различных устройств ввода/вывода. Компьютерная операционная система представляет собой сложную систему.
Однако программисты не имеют прямого отношения к этому оборудованию, и каждый программист не может понять все детали операционной системы, поэтому нам не нужно писать код, поэтому поверх оборудования компьютер устанавливает слой программного обеспечения, этот уровень программного обеспечения может достигать эффекта управления аппаратным обеспечением, отвечая на инструкции, вводимые пользователем, чтобы удовлетворить потребности пользователя, такое программное обеспечение называется操作系统, его миссия состоит в том, чтобы предоставить лучшую, более простую и понятную компьютерную модель для пользовательских программ.
Наши распространенные операционные системы в основномWindows, Linux, FreeBSD или OS X, эта операционная система с графическим интерфейсом называется图形用户界面(Graphical User Interface, GUI), в то время как текстовые, основанные на командной строке, обычно называютсяShell. Вот компоненты операционной системы, которые мы собираемся обсудить
Это упрощенная схема операционной системы. Нижняя часть — это аппаратное обеспечение. Аппаратное обеспечение включает в себя микросхемы, печатные платы, диски, клавиатуры, мониторы и другие устройства, о которых мы упоминали выше. Над аппаратным обеспечением находится программное обеспечение. Большинство компьютеров имеют два режима работы:内核态и用户态, самая основная часть программного обеспечения操作系统, который работает на内核态, состояние ядра также называется管态и核心态, они являются рабочим состоянием операционной системы, но называются по-разному. Операционная система имеет доступ к аппаратному обеспечению и может выполнять любые инструкции, которые способна выполнять машина. Остальное ПО работает用户态Вниз.
用户接口程序(shell 或者 GUI)находятся в пространстве пользователя, и они находятся на самом низком уровне пространства пользователя, что позволяет пользователям запускать другие программы, такие как веб-браузеры, программы для чтения электронной почты, музыкальные проигрыватели и т. д. Также, чем ближе к userland, тем проще написать приложение, если вам не нравится программа для чтения электронной почты, вы можете ее переписать или заменить, но вы не можете написать операционную систему или обработчик прерываний самостоятельно. Эта программа аппаратно защищена от внешних модификаций.
Введение в компьютерное оборудование
Операционная система тесно связана с аппаратным ядром, на котором работает операционная система. Операционная система расширяет набор инструкций компьютера и управляет ресурсами компьютера. Следовательно, операционная система должна знать достаточно о работе аппаратного обеспечения, здесь мы кратко познакомим вас с аппаратным обеспечением современных компьютеров.
Концептуально простой персональный компьютер можно представить в виде модели, описанной выше, с ЦП, памятью и устройствами ввода-вывода, соединенными последовательно шиной и взаимодействующими с другими устройствами через шину. Современные операционные системы имеют более сложную структуру с множеством шин, как мы увидим позже. На данный момент этой модели достаточно для нашего обсуждения.
CPU
ЦП — это мозг компьютера, он в основном взаимодействует с памятью, извлекает инструкции из памяти и выполняет их. Цикл выполнения ЦП заключается в извлечении первой инструкции из памяти, декодировании и определении ее типа и операндов, ее выполнении, а затем выборке, декодировании и выполнении последующих инструкций. Этот цикл повторяется до тех пор, пока программа не будет завершена.
Каждый ЦП имеет определенный набор инструкций, которые он может выполнять. Следовательно, процессоры x86 не могут выполнять программы ARM, а процессоры ARM не могут выполнять программы x86. Поскольку доступ к памяти для получения выполнения или данных занимает больше времени, чем выполнение инструкций, все процессоры содержат некоторые寄存器для хранения ключевых переменных и временных результатов. Поэтому обычно в наборе инструкций есть инструкции для загрузки ключевых слов из памяти в регистры и сохранения ключевых слов из регистров в память. Существуют и другие инструкции, которые объединяют операнды из регистров и памяти, например, операция сложения добавляет два операнда и сохраняет результат в памяти.
В дополнение к регистрам общего назначения, используемым для хранения переменных и временных результатов, в большинстве компьютеров есть несколько специальных регистров, видимых программисту. Один из них является程序计数器(program counter), счетчик программ укажет адрес следующей инструкции, которую необходимо извлечь из памяти. После того, как команда выбрана, программный счетчик обновляется до следующего адреса, который будет выбран.
Другой регистр堆栈指针(stack pointer), который указывает на вершину текущего стека в памяти. Указатель стека будет содержать соответствующие параметры, локальные переменные и временные переменные, не сохраненные в регистрах во время процесса ввода.
Другой регистрPSW(Program Status Word)Регистр слова состояния программы, представляющий собой 8-байтовый (64-битный) набор данных, поддерживаемый операционной системой. Он отслеживает текущее состояние системы. Мы можем игнорировать PSW, если не произойдет конец системы. Пользовательские программы обычно могут читать весь PSW, но обычно могут записывать только некоторые его поля. PSW играет важную роль в системных вызовах и вводе-выводе.
Операционная система должна знать обо всех регистрах. существует时间多路复用(time multiplexing)В процессорах операционная система часто останавливает выполнение одной программы и запускает другую. Каждый раз, когда операционная система прекращает выполнение программы, операционная система сохраняет значения всех регистров, чтобы программу можно было повторно запустить позже.
Чтобы повысить производительность, разработчики процессоров уже давно отказались от одновременного чтения, декодирования и выполнения простых инструкций. Многие современные процессоры имеют механизмы для одновременного получения нескольких инструкций. Например, ЦП может иметь отдельные блоки доступа, декодирования и исполнения, поэтому, когда ЦП выполняет N-ю инструкцию, он также может декодировать N + 1 инструкцию, а также может читать N + 2 инструкции. Такие организационные формы называются流水线(pipeline),
Более продвинутый дизайн, чем конвейерная обработка超标量(superscalar)ЦП, ниже приведена конструкция суперскалярного ЦП.
В приведенном выше проекте имеется несколько исполнительных блоков, например, один для целочисленных операций, один для операций с плавающей запятой и один для логических операций. Две или более инструкций извлекаются, декодируются и буферизируются одновременно, пока они не будут выполнены. Всякий раз, когда исполнительный модуль свободен, буфер проверяется на наличие каких-либо инструкций, которые могут быть выполнены. Если это так, возьмите инструкцию из буфера и выполните ее. Следствием этого дизайна является то, что приложения обычно выполняются не по порядку. В большинстве случаев аппаратное обеспечение отвечает за то, чтобы результат такой операции был таким же, как если бы инструкции выполнялись последовательно.
За исключением очень простых ЦП, используемых во встроенных системах, большинство ЦП имеют两种模式, то есть режим ядра и пользовательский режим, упомянутые ранее. как правило,PSW 寄存器Двоичный бит в элементе управления будет контролировать, является ли текущее состояние режимом ядра или пользовательским режимом. При работе в режиме ядра ЦП может выполнять инструкции в любом наборе инструкций и может использовать функции аппаратного обеспечения. На настольных компьютерах и серверах операционная система обычно работает в режиме ядра, предоставляя доступ ко всему оборудованию. В большинстве встраиваемых систем некоторые из них работают в режиме ядра, а остальные — в пользовательском режиме.
Пользовательские приложения обычно работают в пользовательском режиме, в котором ЦП может выполнять только часть набора инструкций и имеет доступ только к части оборудования. В обычных условиях в пользовательском режиме запрещены все инструкции, относящиеся к вводу-выводу и защите памяти. Конечно, установка двоичных битов режима PSW в режим ядра также запрещена.
Для того, чтобы получить услуги операционной системы, пользовательская программа должна использовать系统调用(system call), системный вызов будет преобразован в режим ядра и вызовет операционную систему.TRAPИнструкции используются для переключения из пользовательского режима в режим ядра и включения операционной системы. Когда соответствующая работа выполнена, инструкции, следующие за системным вызовом, передают управление программе пользователя. Детали вызова операционной системы мы обсудим позже.
Следует отметить, что операционная система будет иметь ловушки при совершении системных вызовов. Большинство ловушек заставляют аппаратное обеспечение предупреждать вас, например, о попытке деления на ноль или о потере значения с плавающей запятой. Во всех случаях операционная система может взять на себя управление и решить, как обрабатывать исключения. Иногда программу приходится останавливать из-за ошибки.
Многопоточные и многоядерные чипы
Представлен Intel Pentium 4, также известный как процессор Pentium.多线程(multithreading)или超线程(hyperthreading, Intel 公司的命名), что и делают процессоры x86 и некоторые другие процессорные чипы. включаютСерия SSPARC, Power5, Intel Xeon и Intel Core. Грубо говоря, многопоточность позволяет ЦП поддерживать два разных состояния потока и纳秒级(nanosecond)время для завершения переключения. Поток — это легковесный процесс, о котором мы поговорим позже. Например, если процессу требуется прочитать инструкции из памяти (что обычно занимает несколько тактов), многопоточный ЦП может переключиться на другой поток. Многопоточность не обеспечивает истинной параллельной обработки. Одновременно работает только один процесс.
Многопоточность имеет смысл для операционной системы, поскольку каждый поток представляется операционной системе как отдельный ЦП. Например, ОС с двумя ЦП, и каждый ЦП выполняет два потока, тогда для ОС может быть 4 ЦП.
В дополнение к многопоточности многие чипы ЦП теперь имеют четыре, восемь или более полных процессоров или ядер. Многоядерный чип фактически содержит четыре микрочипа, каждый со своим независимым процессором.
Ничто не сравнится с Hyundai, когда речь идет об абсолютном количестве ядер.GPU(Graphics Processing Unit), GPU относится к процессору, состоящему из тысяч крошечных ядер. Они хорошо справляются с массовыми параллельными простыми вычислениями.
ОЗУ
Вторым важным компонентом компьютера является память. В идеале память должна быть очень быстрой (быстрее, чем выполнение одной инструкции, чтобы не замедлять работу процессора), достаточно большой и достаточно дешевой, но современные технические средства не могут удовлетворить потребности всех трех. Поэтому применяются разные методы обработки, а система памяти принимает иерархическую структуру.
Память верхнего уровня имеет самую высокую скорость, но наименьшую емкость, и стоимость очень высока.Чем ниже иерархическая структура, тем медленнее эффективность доступа и больше емкость, но дешевле стоимость.
регистр
Верхний слой памяти находится в ЦП寄存器, они сделаны из того же материала, что и ЦП, поэтому работают так же быстро, как ЦП. Программы должны сами управлять этими регистрами в программном обеспечении (т.е. решать, как их использовать).
тайник
Под регистром находится高速缓存, которые в основном контролируются аппаратным обеспечением. Основная память делится на高速缓存行(cache lines)Для 64 байт адреса памяти 0–63 соответствуют строке кэша 0, адреса 64–127 соответствуют строке кэша 1 и так далее. Наиболее часто используемые строки кэша хранятся в кэшах, расположенных внутри ЦП или очень близко к нему. Когда приложению необходимо прочитать ключевое слово из памяти, кэширующее оборудование проверяет, находится ли в кеше нужная строка кэша. Если это так, то это高速缓存命中(cache hit). Кэш выполнил запрос, и запрос памяти не был отправлен по шине в основную память. Попадание в кэш обычно занимает два такта. Кэш-промахи необходимо извлекать из памяти, что занимает много времени. Строки кэша ограничивают размер емкости, потому что это очень дорого. Некоторые машины имеют два или три уровня кэша, каждый из которых медленнее и больше, чем предыдущий уровень.
Кэши играют очень важную роль во многих областях компьютера, а не только в строках кэша оперативной памяти.
Оперативная память (ОЗУ): самый важный тип памяти, что означает, что данные могут быть как считаны, так и записаны. Когда машина выключена, информация в памяти будет
丢失.
Большое количество доступных ресурсов разделено на небольшие части, и некоторые из этих доступных ресурсов используются чаще, чем другие, а для повышения производительности часто используется кэширование. Операционная система не использует кэш все время. Например, большинство операционных систем хранят часто используемые файлы (часть) в памяти хоста, чтобы избежать повторной выборки с диска. Например, что-то вроде/home/ast/projects/minix3/src/kernel/clock.cРезультат преобразования такого поля pathname в адрес диска, на котором находится файл, также можно сохранить в кэше, чтобы избежать повторной адресации. Кроме того, когда адрес веб-страницы (URL) преобразуется в сетевой адрес (IP-адрес), результат преобразования также можно кэшировать для использования в будущем.
В любой системе кэширования будут следующие проблемы, которые необходимо решить
- Когда помещать новый контент в кеш
- в какую строку кэша следует поместить новый контент
- Какая часть контента должна быть удалена из кеша, когда требуется свободное место
- Куда следует поместить удаленный контент в каком-нибудь хранилище большего размера
Не каждая проблема связана с каждой ситуацией кэширования. Для строки кеша основной памяти в кеше ЦП при промахе кеша загружается новое содержимое. Строка кэша, которую следует использовать, обычно вычисляется из старших бит адреса памяти, на который ссылаются.
Кэши — хороший способ решения проблем, поэтому современные процессоры имеют два типа кешей. кэш первого уровня илиL1 cacheвсегда внутри процессора,Исполнительный механизм, используемый для вызова декодированных инструкций в ЦП.. Для этих часто используемых ключевых слов большинство чипов имеют второй кэш L1. Типичный размер кэша L1 составляет 16 КБ. Кроме того, часто имеется кэш второго уровня, т.е.L2 cache, используемый для хранения недавно использованных ключевых слов, обычно в мегабайтах. Самая большая разница между кешем L1 и кешем L2 заключается в наличии задержки. Задержки при доступе к кешу L1 нет, а при доступе к кешу L2 есть задержка в 1-2 такта.
Что такое тактовый цикл? Скорость компьютерного процессора или ЦП определяется тактовым циклом, который представляет собой количество времени между двумя импульсами генератора. Как правило, чем выше число импульсов в секунду, тем быстрее компьютерный процессор может обрабатывать информацию. Тактовая частота измеряется в Гц, обычно в мегагерцах (МГц) или гигагерцах (ГГц). Например, процессор с частотой 4 ГГц выполняет 4 000 000 000 тактовых циклов в секунду.
Процессор компьютера может выполнять одну или несколько инструкций за такт, в зависимости от типа процессора. В то время как ранние компьютерные процессоры и более медленные процессоры могли выполнять только одну инструкцию за такт, современные процессоры могут выполнять несколько инструкций за такт.
основная память
Следующим уровнем в вышеприведенной иерархии является主存, которая является рабочей лошадкой системы памяти, часто называют основной памятьюRAM(Random Access Memory), которую в старые времена иногда называли основной памятью, потому что в компьютерах 1950-х и 1960-х годов в качестве основной памяти использовались крошечные намагничиваемые ферритовые сердечники. Все запросы на доступ к памяти, которые больше не могут быть удовлетворены в кеше, перенаправляются в основную память.
В дополнение к основной памяти многие компьютеры также имеют небольшой объем энергонезависимой оперативной памяти. В отличие от оперативной памяти, энергонезависимая оперативная память не теряет своего содержимого после отключения питания.ROM(Read Only Memory)После того, как содержимое сохранено, оно не будет изменено. Это очень быстро и дешево. (Если кто-то спросит вас, существует ли какое-нибудь быстрое и дешевое запоминающее устройство, то это ПЗУ.) В компьютере модуль загрузчика (он же загрузчик), который используется для запуска компьютера, хранится в ПЗУ. Кроме того, некоторые карты ввода-вывода также используют ПЗУ для низкоуровневого управления устройствами.
EEPROM(Electrically Erasable PROM,)и闪存(flash memory)Тоже энергонезависимые, но в отличие от ПЗУ их можно стирать и перезаписывать. Однако их перезапись занимает больше времени, чем запись в ОЗУ, поэтому они используются так же, как и ПЗУ, но в отличие от ПЗУ могут исправлять ошибки в программе путем перезаписи полей.
Флэш-память также широко используется в качестве портативного носителя информации. Флэш-память — это пленка в цифровых камерах и диск в портативных музыкальных проигрывателях. Скорость флеш-памяти находится между оперативной памятью и диском. Кроме того, в отличие от дискового хранилища, если флэш-память стирается слишком много раз, происходит износ.
Другая категория — CMOS, которая является энергозависимой. Многие компьютеры используют память CMOS для хранения текущего времени и даты.
диск
Следующий уровень磁盘(硬盘), диски на два порядка дешевле в расчете на бит, чем оперативная память, и часто имеют на два порядка большую емкость. Единственная проблема с диском заключается в том, что время произвольного доступа к данным примерно на три порядка меньше. Причина медленного доступа к диску заключается в том, что диски устроены по-разному.
Магнитный диск — это механическое устройство, в котором есть одна или несколько металлических пластин, вращающихся со скоростью 5400, 7200, 10800 об/мин или более. С края пластины свисает механический рычаг, похожий на рычаг звукоснимателя на старом проигрывателе с 33 оборотами, который проигрывал пластиковые пластинки. Информация записывается на диск в виде ряда концентрических кругов. При любом заданном положении руки каждая голова может прочитать круглую область, называемую磁道(track). Объединяет все треки в заданном положении руки, чтобы сформировать柱面(cylinder).
Каждая дорожка разделена на несколько секторов, и значение сектора составляет 512 байт. В современных дисках внешние цилиндры имеют больше секторов, чем внутренние цилиндры. Роботизированной руке требуется около 1 мс, чтобы переместиться с одного цилиндра на соседний цилиндр. Типичное время случайного перемещения к цилиндру составляет от 5 мс до 10 мс, в зависимости от привода. Как только магнитный рычаг окажется на правильной дорожке, диск должен дождаться, пока желаемый сектор прокрутится под головкой, а затем начать чтение и запись.50MB/s, а скорость высокоскоростного диска160MB/s.
требует внимания,
固态硬盘(Solid State Disk, SSD)Не диск, SSD не имеет движущихся частей, не похож на пластинку, а данные хранятся в存储器(闪存), единственное сходство с диском заключается в том, что на нем также хранится много данных, которые не будут потеряны даже при отключении питания.
Многие компьютеры поддерживают хорошо известную虚拟内存Механизм, который делает ожидаемое пространство для хранения больше, чем реальное физическое пространство для хранения. Метод заключается в том, чтобы поместить программу на диск и использовать основную память как часть кеша для сохранения наиболее часто используемой части программы.Этот механизм должен быстро отображать адрес памяти, который используется для преобразования адреса сгенерированные программой в соответствующие байты физического адреса в ОЗУ. Это изображение вызывается одним из ЦП存储器管理单元(Memory Management Unit, MMU)компоненты для завершения.
Очень важное влияние на производительность системы оказывает внешний вид кеша и MMU.В многопрограммной системе механизм переключения с одной программы на другую называется上下文切换(context switch), необходимо изменить ресурс из кеша и записать его обратно на диск.
Устройство ввода/вывода
Процессор и память — это не все, чем должна управлять операционная система.I/OУстройства также тесно связаны с операционной системой. Вы можете обратиться к рисунку выше.Устройства ввода-вывода обычно состоят из двух частей: контроллера устройства и самого устройства. Сам контроллер представляет собой микросхему или набор микросхем, управляющих физическим устройством. Он может получать инструкции от операционной системы, например, для чтения данных с устройства и завершения обработки данных.
Во многих случаях процесс фактического управления устройством очень сложен и имеет множество деталей. Таким образом, задача контроллера — предоставить более простой (но все же очень сложный) интерфейс для операционной системы. То есть экранирование физических деталей.Любую сложную вещь можно решить, добавив слой агентов, что является очень распространенным решением для компьютеров или человеческого общества.
Другая часть устройства ввода-вывода — это само устройство, которое имеет относительно простой интерфейс, потому что интерфейс не выполняет много работы и стандартизирован. Например, любой контроллер диска SATA можно адаптировать к любому диску SATA после стандартизации, поэтому стандартизация необходима.ATAпредставлять高级技术附件(AT Attachment), а SATA означает串行高级技术附件(Serial ATA).
Что такое АТ? Это второе поколение персональных компьютеров IBM.
高级Технологическое достижение с использованием процессора 80286 с частотой 6 МГц, представленного в 1984 году, самого мощного процессора того времени.
Такие слова, как «продвинутый», следует употреблять с осторожностью, иначе, оглядываясь на 20 лет спустя, вас могут нещадно оплевать.
SATA теперь является стандартным интерфейсом жесткого диска для многих компьютеров. Поскольку фактический интерфейс устройства скрыт в контроллере, операционная система видит интерфейс контроллера, который сильно отличается от интерфейса устройства.
Каждый тип контроллера устройства отличается, поэтому для управления требуется различное программное обеспечение. Программное обеспечение, которое специально взаимодействует с контроллером, отправляет инструкции по обработке команд и получает ответ, называется设备驱动程序(device driver). Каждый производитель контроллеров должен предоставлять разные драйверы устройств для разных операционных систем.
Чтобы драйвер устройства работал, он должен быть установлен в операционной системе, чтобы он мог работать в режиме ядра. Обычно существует три способа загрузки драйверов устройств в операционную систему.
- Первый способ — переподключить ядро с лаунчером устройства и перезагрузить систему. Это
UNIXКак работает система - Второй подход заключается в создании записи в файле операционной системы, которая информирует файл о том, что требуется драйвер устройства, а затем перезагружает систему. Когда система перезагружается, операционная система ищет соответствующую программу запуска устройства и загружает ее, что
Windowsспособ работы - Третий подход заключается в том, что операционная система может получать новые драйверы устройств во время выполнения и устанавливать их немедленно, не перезагружая операционную систему.Этот подход менее распространен, но становится все более распространенным. Устройства с возможностью горячей замены, такие как USB и IEEE 1394, требуют динамически загружаемых драйверов устройств.
Каждый контроллер устройства имеет небольшое количество регистров для связи, например, минимальный контроллер диска также будет иметь регистры для указания дисковых адресов, адресов памяти и количества секторов. Чтобы активировать контроллер, драйвер устройства получает инструкцию от операционной системы, преобразует ее в соответствующее значение и записывает в регистр устройства.Комбинация всех регистров устройства составляетI/O 端口空间.
На некоторых компьютерах регистры устройств сопоставляются с доступным адресным пространством операционной системы, что позволяет считывать и записывать их точно так же, как память. В таком компьютере не требуется никаких специальных инструкций ввода-вывода, а пользовательские программы могут аппаратно блокироваться от доступа к этим адресам памяти (например, с помощью базовых и индексных регистров). На других компьютерах регистры устройств помещаются в выделенное пространство порта ввода-вывода, и каждый регистр имеет адрес порта. Среди этих компьютеров выделяются специальныеINиOUTИнструкции активируются в режиме ядра и позволяют читать и записывать драйверы устройств и регистры. Первый подход ограничивает использование специальных инструкций ввода-вывода, но допускает некоторое адресное пространство; последний не требует адресного пространства, но требует специальных инструкций, которые широко используются.
Есть три способа реализации ввода и вывода.
- В простейшем случае пользовательская программа делает системный вызов, ядро переводит его в вызов программы для соответствующего драйвера, а драйвер устройства инициирует ввод-вывод и циклически проверяет устройство, выполнило ли оно работу (обычно будут биты, чтобы указать, что устройство все еще занято). Когда вызов ввода-вывода завершен, драйвер устройства отправляет данные в указанное место и возвращается. Затем операционная система передает управление вызывающей стороне. Этот способ называется
忙等待(busy waiting), недостатком этого метода является то, что ЦП все время занимает ЦП, а ЦП будет продолжать опрашивать устройство ввода-вывода до тех пор, пока операция ввода-вывода не будет завершена. - Второй способ заключается в том, чтобы драйвер устройства запускал устройство и прерывал работу устройства по завершении операции. Драйвер устройства возвращается в этот момент. Затем операционная система при необходимости блокирует вызывающего абонента и организует выполнение других действий. Когда драйвер устройства обнаруживает, что операция устройства завершена, он выдает
中断Сообщите, что операция завершена.
В операционных системах прерывания очень важны, поэтому об этом нужно поговорить подробнее.
Как показано на рисунке выше, это трехэтапный процесс ввода-вывода.На первом этапе драйвер устройства сообщает контроллеру, что делать, записывая в регистры устройства. Затем контроллер запускает устройство. Когда контроллер завершает чтение или запись байтов, которые, как ему было сказано, необходимо передать, он сигнализирует контроллеру прерываний на шаге 2, используя некоторую шину. Если контроллер прерываний готов принять сигнал прерывания (может и не получиться, если он занят прерыванием с более высоким приоритетом), то он устанавливает сигнал на контакте ЦП. Это шаг 3
На четвертом этапе контроллер прерываний помещает номер устройства на шину, чтобы ЦП мог прочитать шину и узнать, какое устройство завершило операцию (одновременно может работать несколько устройств).
Как только ЦП решает реализовать прерывание, счетчик программ и PSW помещаются в текущий стек, и ЦП переключается в режим ядра. Номер устройства можно использовать как ссылку на память, чтобы найти адрес обработчика прерывания для этого устройства. Эта часть памяти называется中断向量(interrupt vector). Как только обработчик прерывания (часть драйвера устройства прерывания) запускается, он удаляет программный счетчик и регистр PSW из стека, сохраняет их, а затем опрашивает состояние устройства. После того, как обработчик прерывания завершится, он вернется к первой инструкции, которая не была выполнена предыдущей пользовательской программой, процесс выглядит следующим образом.
- Третий способ реализации ввода-вывода — использование специального оборудования:
直接存储器访问(Direct Memory Access, DMA)чип. Он может управлять битовым потоком между памятью и некоторыми контроллерами без вмешательства процессора. ЦП установит микросхему DMA, указав количество передаваемых байтов, соответствующие адреса устройства и памяти, а также направление операции. Когда микросхема DMA завершит свою работу, она вызовет прерывание, и процесс прерывания описан выше. Мы подробно обсудим процесс прерывания позже
Прерывания могут (и часто случаются) возникать в неподходящее время, пока работает другой обработчик прерываний. Следовательно, ЦП может запретить прерывания и перезапустить прерывания позже. После того, как ЦП отключает прерывания, любое устройство, выдавшее прерывание, может продолжать поддерживать обработку сигнала прерывания, но ЦП не будет прерываться до тех пор, пока прерывания снова не будут разрешены. Если более чем одно устройство выдало сигнал прерывания, когда прерывание отключено, контроллер прерываний решит, какое прерывание обработать первым, обычно это зависит от приоритета, данного каждому устройству заранее, устройство с наивысшим приоритетом выигрывает прерывание правильно, другое Устройство должно ждать.
автобус
Приведенная выше структура (диаграмма компонентов простого персонального компьютера) уже много лет используется в миникомпьютерах и первых IBM PC. Однако по мере того, как память ядра процессора становилась быстрее, появилась возможность обрабатывать все запросы на одной шине, включая шину IBM PC. От использования этого режима следует отказаться. В результате появились другие шины, которые быстрее обрабатывали устройства ввода-вывода и ЦП в память. Результат этой эволюции привел к появлению следующей структуры.
Система x86 на картинке выше содержит много шин,Кэш, память, PCIe, PCI, USB, SATA и DMI, каждая шина имеет разную скорость передачи и функцию. Операционная система должна понимать всю конфигурацию шины и управление ею. Основной автобус этоPCIe(Peripheral Component Interconnect Express)автобус.
Изобретенная Intel шина PCIe также является преемницей древней шины PCI, и древняя шина PCI также призвана заменить античный уровеньISA(Industry Standard Architecture)устанавливается автобусом. Способность передавать десятки Гбит/с делает PCIe намного быстрее своего предшественника, да и по своей сути они очень разные. До 2004 года, когда был изобретен PCIe, большинство шин были параллельными и общими.共享总线架构(shared bus architeture)Указывает, что несколько устройств используют одни и те же провода для передачи данных. Поэтому, когда несколько устройств отправляют данные одновременно, вам нужно лицо, принимающее решения, чтобы решить, кто может использовать шину. PCIe, с другой стороны, использует выделенный сквозной канал. используется в традиционном PCI并行总线架构(parallel bus architecture)Указывает, что одно и то же слово данных передается по нескольким проводам. Например, на традиционной шине PCI 32-битные данные передаются по 32 параллельным проводам. PCIe отличается, он выбирает串行总线架构(serial bus architecture), и отправлять все биты данных в сообщении по одному соединению (называемому каналом), как сетевой пакет. Это многое упрощает, так как больше не гарантируется, что все 32-битные данные прибудут точно в одно и то же место назначения в одно и то же время. Параллелизм по-прежнему можно эффективно использовать, распараллелив несколько путей данных. Например, 32 сообщения могут быть переданы параллельно с использованием 32 каналов данных.
В приведенной выше структуре ЦП общается с памятью через шину DDR3, с периферийным графическим устройством (GPU) через шину PCIe и с периферийным графическим устройством (GPU) через шину PCIe.DMI(Direct Media Interface)Шина общается со всеми остальными устройствами через центр интеграции. А встроенный центр управления взаимодействует с USB-устройствами по последовательной шине, с жесткими дисками и DVD-приводами по шине SATA и кадрами Ethernet по PCIe.
Мало того, каждое ядро
USB(Univversal Serial Bus)это устройство, используемое для подключения к компьютеру всех медленных устройств ввода-вывода (таких как клавиатуры и мыши). USB 1.0 может обрабатывать нагрузки до 12 Мбит/с, в то время как USB 2.0 увеличивает скорость шины до 480 Мбит/с, а USB 3.0 может развивать скорость не менее 5 Гбит/с. Все USB-устройства можно подключить напрямую к компьютеру и сразу же начать работать, не требуя перезагрузки компьютера, как раньше.
SCSI(Small Computer System Interface)Шина — это высокоскоростная шина, используемая в высокоскоростных жестких дисках, сканерах и других устройствах, требующих большой пропускной способности. Сегодня они в основном используются в серверах и рабочих станциях и могут развивать скорость до 640 МБ/с.
процесс запуска компьютера
Итак, с указанным выше оборудованием и поддержкой операционной системы наш компьютер может начать работать, так как же происходит процесс запуска компьютера? Ниже приведена лишь краткая версия процесса запуска.
На каждом компьютере есть родительская плата, то есть материнская плата.Материнская плата она же материнская плата.Она является одним из самых основных и важных компонентов компьютера. Основная плата, как правило, представляет собой прямоугольную печатную плату, на которой установлены основные схемные системы, составляющие компьютер, обычно включая микросхемы BIOS, микросхемы управления вводом-выводом, интерфейсы переключателей управления клавиатурой и панелью, разъемы световых индикаторов, слоты расширения, материнские платы. разъемы питания постоянного тока и другие компоненты.
На материнской плате есть基本输入输出系统(Basic Input Output System, BIOS)программа о. Внутри BIOS находится низкоуровневое программное обеспечение ввода-вывода, включая чтение с клавиатуры, запись на экран, дисковый ввод-вывод и другие процессы. Сегодня он хранится во флэш-памяти и является энергонезависимым, но может быть обновлен операционной системой при обнаружении ошибки в BIOS.
на компьютере启动(booted)Когда BIOS включен, он сначала проверит объем установленной оперативной памяти, установлены ли клавиатура и другие основные устройства и правильно ли они реагируют. Далее он начинает сканировать шину PCIe и PCI и находит все подключенные к ней устройства. Устройства Plug and Play также записываются. Если существующее устройство отличается от устройства при последней загрузке системы, новое устройство будет перенастроено.
После синего BIOS пытается сохранитьCMOSИнвентаризация устройства в хранилище Попытка запуска устройства
КМОП это
Complementary Metal Oxide Semiconductor(互补金属氧化物半导体)аббревиатура от. Это относится к технологии, используемой при производстве крупномасштабных микросхем интегральных схем, или микросхемы, изготовленной по этой технологии, которая представляет собой микросхему ОЗУ с возможностью чтения и записи на материнской плате компьютера. Из-за характеристик чтения и записи он используется на материнской плате компьютера для сохранения данных после того, как BIOS установил параметры аппаратного обеспечения компьютера.Эта микросхема используется только для хранения данных.Настройку различных параметров в БИОС нужно проходить через специальную программу. Программа настройки BIOS обычно интегрируется производителем в микросхему, и в программу настройки BIOS можно войти с помощью специальной клавиши при включении системы, что упрощает настройку системы. Поэтому настройки BIOS иногда называют настройками CMOS.
Пользователь может войти в программу настройки BIOS после загрузки системы, чтобы изменить список устройств. Затем определите, можно ли получить к нему доступ извне.CD-ROMи USB-драйвер для загрузки, если загрузка не удалась (то есть ее нет), система загрузится с жесткого диска, первый сектор в загрузочном устройстве считывается в память и выполняется. Этот сектор содержит программу, которая проверяет таблицу разделов, обычно в конце загрузочного сектора, чтобы определить, какой раздел активен. Затем прочитайте второй загрузчик из этого раздела, который читает ОС из активного раздела и загружает ее.
Затем операционная система запрашивает у BIOS информацию о конфигурации. Для каждого устройства проверяется наличие драйверов устройств. Если нет, пользователя спросят, нужно ли вставитьCD-ROMдрайвер (предоставляется производителем устройства) или загружается из Интернета. Когда драйверы устройств доступны, операционная система загружает их в ядро, затем инициализирует таблицы, создает необходимые фоновые процессы и запускает программу входа в систему или графический интерфейс.
Музей операционных систем
Операционные системы существуют уже более полувека.За этот период появились различные типы операционных систем,но не все операционные системы известны.Ниже перечислены некоторые из наиболее известных операционных систем.
операционная система мейнфрейма
Некоторые операционные системы более высокого уровня представляют собой операционные системы для мейнфреймов, которые можно найти в центрах обработки данных крупных корпораций. Емкость ввода-вывода этих компьютеров отличается от емкости персональных компьютеров. Для большого компьютера нормально иметь 1000 дисков и миллионы гигабайт емкости, и друзья, у которых есть такой персональный компьютер, будут очень завидовать. Мейнфреймы также находятся на высокопроизводительных веб-серверах, крупных сайтах услуг электронной коммерции.
серверная операционная система
Следующим уровнем является серверная операционная система. Они работают на серверах, которые могут быть большими персональными компьютерами, рабочими станциями или даже мейнфреймами. Они обслуживают нескольких пользователей по сети и позволяют пользователям совместно использовать аппаратные и программные ресурсы. Сервер может предоставлять службы печати, файловые службы или веб-службы. Интернет-провайдеры используют несколько серверов, которые обеспечивают поддержку пользователей, позволяя веб-сайтам хранить веб-страницы и обрабатывать входящие запросы. Типичными серверными операционными системами являются Solaris, FreeBSD, Linux и Windows Server 201x.
многопроцессорная операционная система
Все более распространенным способом получения большой вычислительной мощности является подключение нескольких процессоров к системе. В зависимости от того, как они подключены и совместно используются, эти системы называются параллельными компьютерами, мультикомпьютерами или мультипроцессорами. Для них требуются специализированные операционные системы, но обычно используемые операционные системы представляют собой варианты серверных операционных систем со специализированными функциями, такими как связь, подключение и согласованность.
С недавним появлением многоядерных чипов в персональных компьютерах обычные операционные системы для настольных компьютеров и ноутбуков также начинают работать с небольшими многопроцессорными системами, а количество ядер увеличивается со временем. Многие основные операционные системы, такие как Windows и Linux, могут работать на многоядерных процессорах.
система персонального компьютера
Следующая категория — операционные системы для персональных компьютеров. Современные операционные системы для персональных компьютеров поддерживают многопроцессорность. При запуске обычно запускаются десятки программ, и их функция заключается в обеспечении хорошей поддержки одного пользователя. Такие системы широко используются в обработке текстов, электронных таблиц, играх и доступе в Интернет. Типичными примерами являются Linux, FreeBSD, Windows 7, Windows 8 и Apple OS X.
операционная система карманного компьютера
По мере того, как аппаратное обеспечение становится все меньше и меньше, мы видим планшеты, смартфоны и другие портативные компьютерные системы. портативный компьютер илиPDA(Personal Digital Assistant),个人数字助理Это небольшой компьютер, который можно держать в руке и управлять им. Эта часть рынка была охвачена GoogleAndroidсистема и яблокоIOSведущий.
встроенная операционная система
Встроенная операционная система работает на компьютере, который управляет устройством, не являющимся компьютером в общем смысле, и не позволяет пользователям устанавливать программное обеспечение. Типичными примерами являются такие устройства, как микроволновые печи, автомобили, DVD-рекордеры, мобильные телефоны и MP3-плееры. Все программное обеспечение работает в ПЗУ, что означает отсутствие защиты между приложениями, что приводит к некоторому упрощению. Основными встраиваемыми системами являются Linux, QNX и VxWorks.
А как насчет операционной системы сенсорного узла?
Существует множество применений, требующих настройки сети крошечных сенсорных узлов. Эти узлы представляют собой микрокомпьютеры, которые могут взаимодействовать друг с другом и использовать базовые станции беспроводной связи. Такие сенсорные сети можно использовать для защиты периметра зданий, защиты границ страны, обнаружения лесных пожаров, измерения температуры и осадков для прогнозирования погоды и многого другого.
Каждый сенсорный узел представляет собой физический компьютер с ЦП, ОЗУ, ПЗУ и одним или несколькими датчиками окружающей среды. На узле работает небольшая, но реальная операционная система, которая обычно управляется событиями и может реагировать на внешние события.
операционная система реального времени
Другой тип операционной системы — это операционная система реального времени, и эти системы характеризуются временем как ключевым параметром. Например, в системе управления промышленными процессами компьютер реального времени на фабрике должен собирать данные о производственном процессе и использовать эти данные для управления машинами. Если действие должно произойти в определенный момент, то硬实时系统. Многие такие системы можно увидеть в промышленном управлении, гражданской авиации, военных и подобных приложениях. Другой тип системы软实时系统, в такой системе случайные нарушения конечного срока нежелательны, но допустимы, не вызывая необратимого ущерба. Такими системами являются цифровые аудио- или мультимедийные системы. Смартфоны также являются программными системами реального времени.
Операционная система смарт-карты
Минимальная операционная система работает на смарт-карте. Смарт-карта — это кредитная карта, содержащая чип ЦП. Он имеет очень строгие ограничения по энергопотреблению и пространству для хранения. Некоторые карты имеют одну функцию, например электронные платежи, некоторые смарт-карты ориентированы на Java. Это означает, что в ПЗУ смарт-карты имеется интерпретатор виртуальной машины Java (JVM).
Основные понятия операционной системы
Большинство операционных систем предоставляют определенные базовые концепции и абстракции, такие как процессы, адресные пространства, файлы и т. д., которые являются ключевыми для понимания. Ниже мы кратко представим некоторые основные понятия, для иллюстрации этих понятий мы будем время от времениUNIXПримеры представлены в , и такие же примеры есть и в других системах, которые мы рассмотрим позже.
Ссылка на статью:
Современные операционные системы, четвертое издание
baike.baidu.com/item/операционная система/1…
《Современная операционная система》четвертое издание
факультет.В это время.Niu.Quota/~Hutchins/From…
woohoo.computer Hope.com/jargon/from/кроме…
«Станция B — Операционная система»