Файл: Функции операционных систем персональных компьютеров (Виды операционных систем).pdf
Добавлен: 29.03.2023
Просмотров: 244
Скачиваний: 2
Клиент-серверная модель
Небольшая вариация идеи микроядер выражается в обособлении двух классов процессов: серверов, каждый из которых предоставляет какую-нибудь службу, и клиентов, которые пользуются этими службами. Эта модель известна как клиент-серверная.
Связь между клиентами и серверами часто организуется с помощью передачи сообщений. Чтобы воспользоваться службой, клиентский процесс составляет сообщение, в котором говорится, что именно ему нужно, и отправляет его соответствующей службе. Затем служба выполняет определенную работу и отправляет обратно ответ.
Становится все больше и больше систем, привлекающих пользователей, сидящих за домашними компьютерами, в качестве клиентов, а большие машины, работающие где-нибудь в другом месте, – в качестве серверов. Фактически по этой схеме работает большая часть Интернета. Персональные компьютеры отправляют запросы на получение веб-страницы на сервер, и эта веб-страница им возвращается. Это типичная картина использования клиент-серверной модели при работе в сети.
2. Функции операционных систем персональных компьютеров
2.1. Процессы
Рассмотрим персональный компьютер. При запуске системы запускается множество процессов, о которых пользователь зачастую даже и не подозревает. Например, может быть запущен процесс, ожидающий входящей электронной почты. Другой запущенный процесс может принадлежать антивирусной программе и предназначаться для периодической проверки доступности определений каких-нибудь новых вирусов. В дополнение к этому могут быть запущены процессы, инициированные пользователем в явном виде, – печать файлов или сброс пользовательских фотографий на USB-накопитель, и все они работают одновременно с браузером, с помощью которого пользователь просматривает Интернет. Всей этой работой нужно управлять, и здесь нам очень пригодится многозадачная система, поддерживающая работу нескольких процессов.
В любой многозадачной системе центральный процессор быстро переключается между процессами, предоставляя каждому из них десятки или сотни миллисекунд. При этом, хотя в каждый конкретный момент времени центральный процессор работает только с одним процессом, в течение 1 секунды он может успеть поработать с несколькими из них, создавая иллюзию параллельной работы. Иногда в этом случае говорят о псевдопараллелизме в отличие от настоящего аппаратного параллелизма в многопроцессорных системах (у которых имеется не менее двух центральных процессоров, использующих одну и ту же физическую память).
Процесс – это своего рода действия. У него есть программа, входные и выходные данные и состояние. Один процессор может совместно использоваться несколькими процессами в соответствии с неким алгоритмом планирования, который используется для определения того, когда остановить один процесс и обслужить другой. В отличие от процесса программа может быть сохранена на диске и вообще ничего не делать.
Операционным системам необходим какой-нибудь способ для создания процессов. В самых простых системах или в системах, сконструированных для запуска только одного приложения, появляется возможность присутствия абсолютно всех необходимых процессов при вводе системы в действие. Но в универсальных системах нужны определенные способы создания и прекращения процессов по мере необходимости.
Существуют четыре основных события, приводящих к созданию процессов:
- Инициализация системы;
- Выполнение работающим процессом системного вызова, предназначенного для создания процесса;
- Запрос пользователя на создание нового процесса;
- Инициация пакетного задания.
При запуске операционной системы создаются, как правило, несколько процессов. Некоторые из них представляют собой высокоприоритетные процессы, то есть процессы, взаимодействующие с пользователями и выполняющие для них определенную работу. Остальные являются фоновыми процессами, не связанными с конкретными пользователями, но выполняющими ряд специфических функций.
После создания процесс начинает работать и выполняет свою задачу. Но ничто не длится вечно, даже процессы. Рано или поздно новые процессы будут завершены, обычно в силу следующих обстоятельств:
- обычного выхода (добровольно);
- выхода при возникновении ошибки (добровольно);
- выхода при возникновении фатальной ошибки (принудительно);
- уничтожения другим процессом (принудительно).
В некоторых системах, когда процесс порождает другой процесс, родительский и дочерний процессы продолжают оставаться определенным образом связанными друг с другом. Дочерний процесс может и сам создать какие-нибудь процессы, формируя иерархию процессов.
Процесс может находиться в трех состояниях:
- выполняемый (в данный момент использующий центральный процессор);
- готовый (работоспособный, но временно приостановленный, чтобы дать возможность выполнения другому процессу);
- заблокированный (неспособный выполняться, пока не возникнет какое-нибудь внешнее событие).
Для реализации процессов операционная система ведет таблицу, называемую таблицей процессов, в которой каждая запись соответствует какому-нибудь процессу. Эти записи содержат важную информацию о состоянии процесса, включая счетчик команд, указатель стека, распределение памяти, состояние открытых им файлов, его учетную и планировочную информацию и все остальное, касающееся процесса, что должно быть сохранено, когда процесс переключается из состояния выполнения в состояние готовности или блокировки, чтобы позже он мог возобновить выполнение, как будто никогда не останавливался.
2.2. Управление памятью
Память представляет собой очень важный ресурс, требующий четкого управления. Подсистема управления памятью производит распределение физической памяти между всеми существующими в системе процессами, загрузку и удаление программных кодов и данных процессов в отведенные им области памяти, а также защиту областей памяти каждого процесса. Стратегия управления памятью складывается из стратегий выборки, размещения и замещения блока программы или данных в основной памяти. Соответственно используются различные алгоритмы, определяющие, когда загрузить очередной блок в память, в какое место памяти его поместить и какой блок программы или данных удалить из основной памяти, чтобы освободить место для размещения новых блоков. Одним из наиболее популярных способов управления памятью в современных операционных системах является виртуальная память. Реализация механизма виртуальной памяти позволяет программисту считать, что в его распоряжении имеется однородная оперативная память, объем которой ограничивается только возможностями адресации, предоставляемыми системой программирования.
2.3. Управление файловой системой
Файлы являются логическими информационными блоками, создаваемыми процессами. На диске обычно содержатся тысячи или даже миллионы не зависящих друг от друга файлов. Фактически если рассматривать каждый файл как некую разновидность адресного пространства, то это будет довольно близко к истине, за исключением того, что файлы используются для моделирования диска, а не оперативной памяти.
Файлами управляет операционная система. Структура файлов, их имена, доступ к ним, их использование, защита, реализация и управление ими являются вопросами разработки операционных систем.С позиции пользователя наиболее важным аспектом файловой системы является ее представление, то есть что собой представляет файл, как файлы именуются, какой защитой обладают, какие операции разрешено проводить с файлами и т.д.
Обычно файлы хранятся на диске, поэтому управление дисковым пространством является основной заботой разработчиков файловой системы. Для хранения файла размером n байт возможно использование двух стратегий: выделение на диске n последовательных байтов или разбиение файла на несколько непрерывных блоков.
При хранении файла в виде непрерывной последовательности байтов возникает очевидная проблема: вполне вероятно, что по мере увеличения его размера потребуется его перемещение на новое место на диске. По этой причине почти все файловые системы разбивают файлы на блоки фиксированного размера, которые не нуждаются в смежном расположении.
Надежность файловой системы увеличивается за счет осуществления инкрементного архивирования и использования программы, способной устранять дефекты файловых систем. Важную роль играет производительность файловой системы, которая может быть улучшена несколькими способами, включая кэширование, опережающее чтение и размещение блоков одного файла близко друг к другу. Повысить производительность позволяют файловые системы с журнальной структурой, которые ведут запись на диск большими порциями.
2.4. Ввод-вывод информации
Операционная система управляет всеми устройствами ввода-вывода, подключенными к компьютеру. Она должна выдавать команды устройствам, перехватывать прерывания и обрабатывать ошибки. Также она должна предоставить простой и легкий в использовании интерфейс между устройствами и всей остальной системой.
Устройства ввода-вывода можно условно разделить на две категории: блочные устройства и символьные устройства. К блочным относятся такие устройства, которые хранят информацию в блоках фиксированной длины, у каждого из которых есть собственный адрес. Обычно размеры блоков варьируются от 512 до 65 536 байт. Вся передача данных ведется пакетами из одного или нескольких целых (последовательных) блоков. Среди наиболее распространенных блочных устройств жесткие диски, приводы дисков и флеш-накопители USB.
Другой тип устройств ввода-вывода – символьные устройства. Они выдают или воспринимают поток символов, не относящихся ни к одной блочной структуре. Они не являются адресуемыми и не имеют никакой операции позиционирования. В качестве символьных устройств могут рассматриваться принтеры, сетевые интерфейсы, мыши (в качестве устройства-указателя) и множество других устройств, не похожих на дисковые устройства.
Устройства ввода-вывода зачастую состоят из механической и электронной составляющих. Электронный компонент называется контроллером устройства, или адаптером. На персональных компьютерах он часто присутствует в виде микросхемы на системной плате или печатной платы, вставляемой в слот расширения (PCIe). А механический компонент – само устройство. Задача контроллера состоит в преобразовании последовательного потока битов в блок байтов и коррекции ошибок в случае необходимости. Блок байтов обычно проходит первоначальную побитовую сборку в буфере, входящем в состав контроллера. После проверки контрольной суммы блока и объявления его не содержащим ошибок он может быть скопирован в оперативную память.
В качестве средства взаимодействия человека с компьютером используются клавиатура, мышь и монитор. Пользователь вводит информацию в основном с помощью клавиатуры и мыши (иногда с помощью сенсорных экранов). На персональных компьютерах клавиатура содержит микропроцессор, который обычно через специализированный порт обменивается данными с микросхемой контроллера, расположенной на системной плате (хотя сейчас все чаще клавиатура подключается к порту USB). Одно прерывание генерируется при нажатии клавиши, а второе – сразу же, как только она будет отпущена. По каждому из этих клавиатурных прерываний драйвер клавиатуры извлекает информацию о том, что именно произошло, пользуясь при этом портом ввода-вывода, связанным с клавиатурой. Число, фигурирующее в порте ввода-вывода, является номером клавиши, который называется скан-кодом. У обычных клавиатур имеется не более 128 клавиш, поэтому для представления номера клавиши хватает семи битов. Восьмой бит устанавливается в 0, когда клавишу нажимают, и в 1, когда ее отпускают. Состояние каждой клавиши (нижнее или верхнее ее положение) должен отслеживать драйвер клавиатуры.
Мышь имеется на многих персональных компьютерах. Как только мышь будет перемещена в любом направлении на определенное расстояние или ее кнопка будет нажата или освобождена, компьютеру будет отослано сообщение. Сообщение в адрес компьютера имеет три составляющие. Первая составляющая – это изменение позиции х со времени последнего сообщения. Затем следует изменение позиции у со времени последнего сообщения. И в завершение включается информация о состоянии кнопок. Формат сообщения зависит от системы и количества имеющихся кнопок.
Сенсорные экраны все чаще используют в качестве устройств ввода. Устройства с сенсорным экраном делятся на две категории: непрозрачные и прозрачные. Типичным непрозрачным устройством является сенсорная панель ноутбука. Примером прозрачного устройства может послужить сенсорный экран смартфона или планшетного компьютера. Большинство современных сенсорных экранов имеют либо емкостную, либо резистивную конструкцию.