Здравствуйте! Когда появится возможность сдать экзамен на сертификат? |
Введение в операционные системы
Назначение операционной системы; основные функции операционных систем: управление устройствами, изоляция процессов, планировщик задач, виртуальная память, разграничение прав доступа пользователей, файловая система, сетевая поддержка, интерфейс пользователя, управление питанием.
НАЗНАЧЕНИЕ ОПЕРАЦИОННОЙ СИСТЕМЫ
Современный компьютер включает в себя множество различных устройств - процессор, память, жесткий диск и пр. К компьютеру также могут подключаться внешние (периферийные) устройства, например, принтер или сканер. Компьютер должен уметь управлять этими устройствами для того, чтобы прикладные программы, которые на неё работают, получили возможность пользоваться сервисами этих устройств - например, чтобы можно было из MS Word печатать документы на принтере.
Управление внешними и внутренними устройствами осуществляют специальные служебные программы. Эти программы достаточно сложны, поскольку взаимодействуют с устройствами через низкоуровневые интерфейсы. Более того, для каждого устройства существует большой ряд аналогов - например, количество моделей принтеров от различных производителей измеряется сотнями. И каждая модель имеет свои собственные особенности, отражаемые в её программном интерфейсе. Однако важно, чтобы прикладное программное обеспечение не зависело от того, какое конкретное устройство подключено или установлено на данном компьютере - то есть функция печати в Microsoft Word должна одинаково работать независимо от вида принтера, подключённого к данному компьютеру. Управление устройствами и сокрытие от прикладных программ особенностей различных моделей этих устройств выполняет операционная система.
Операционная система (OC, Operating System) - это служебное ПО, которое позволяет прикладными программами, работающем на компьютере, эффективно использовать внутренние устройства компьютера, такие как центральный процессор, оперативную память, жесткий диск средства сетевой поддержки и др., а также внешние - монитор, клавиатуру, принтер и т.д.
Идея независимости прикладного программного обеспечения от оборудования компьютера появилась давно, как минимум, в начале 1950-х годов. Однако понятие операционной системы вошло в широкий обиход в эпоху ЭВМ второго поколения, на рубеже 1950-х и 1960-х годов. Начиная с этого времени операционные системы прошли долгий путь развития. К настоящему моменту создано большое количество разнообразных операционных систем. Можно упомянуть различные версии Windows, используемые, преимущественно, на офисных компьютерах и ноутбуках, ОС Linux, которая эффективно используется на серверах и в телекоммуникациях, ОС Android, работающую на мобильных телефонах и планшетах.
ОСНОВНЫЕ ФУНКЦИИ ОПЕРАЦИОННЫХ СИСТЕМ
Перейдём теперь к детальному рассмотрению основных функции операционных систем. Для начала перечислим их.
- Управление устройствами.
- Многозадачность.
- Управление виртуальной памятью.
- Разграничение прав доступа пользователей.
- Файловая система.
- Сетевая поддержка.
- Интерфейс пользователя.
- Управление питанием.
Управление устройствами (Device Management). Исторически, эта функция является, основной для операционной системы.
Разнообразные внутренние устройства компьютера, а также внешние - графический адаптер, жесткий диск, мышь, графический адаптер, клавиатура, модем, принтер и пр. - взаимодействуют с прикладным ПО, запущенным на этом компьютере, при помощи специальных программ - драйверов (Drivers), которые являются частью ОС.
Операционная система включает в себя большое количество драйверов для наиболее популярных моделей устройств, однако, не может покрыть всех возможных вариантов. Вот почему, после покупки, например, нового принтера, Вам может понадобиться найти в Интернете и установить на Вашем компьютере соответствующий драйвер.
Многозадачность. На современном компьютере одномоментно может исполняться более одного приложения. Поддержка этой возможности называется многозадачностью. Для обеспечения многозадачности необходимо, чтобы процессор компьютера выполнял программы в соответствии с некоторым расписанием - сначала одну программу, потом другую, потом третью и т.д., возвращаясь через некоторое время к первой, и так по кругу. Это подход, предназначенный изначально для одноядерных процессоров, называется псевдо-параллелизмом, поскольку он подразумевает не параллельную работу нескольких программ одном процессоре, а выполнение программ последовательно, но с частым переключением. Псевдо-параллелизм используется и для многоядерных процессоров, поскольку одновременно работает больше программ, чем имеется ядер у процессора.
Существует много стратегий реализации псевдо-параллелизма. В операционной системе Windows запущенные в данный момент на компьютере программы (процессы) можно увидеть в Task Manager. Для того, чтобы минимизировать последствия влияния ошибок в одной программе на другие программы, запущенные на том же компьютере, ОС запускает каждый процесс в изолированном окружении. Это означает, что запущенные процессы не имеют доступа к данным друг друга. Один из основных механизмов такой изоляции - режим адресации, при котором процесс может адресовать лишь свои данные, и по одинаковым адресам, обозначенных в соответствующих программах, у разных процессов находятся разные данные, у каждого - свои.
Управление виртуальной памятью. Запущенные на компьютере программы могут потребовать больше оперативной памяти, чем имеется в наличии, или чем ОС может выделить для данной программы. В такой ситуации ОС использует виртуальную память, организуя для программы с использованием жесткого диска память бо?льшего объема. Эта иллюзия для прикладной программы достоверна - последняя не вникает в детали распределения памяти, просто используя всю ту память, которую ей выделяет ОС, хотя, безусловно, активное превышение реальных, физических лимитов (то есть интенсивное использование жесткого диска через механизм виртуальной памяти) сказывается на производительности программы.
Файловая система (File System). Жёсткий диск компьютера является сложным устройством, но, фактически, он хранит лишь массив байтов. Однако непосредственная работа с массивом байт крайне неудобна как для конечного пользователя, так и для прикладных программ. В связи с этим ОС поддерживают абстракцию файла.
Файл (File) - это фрагмент памяти на жёстком диске, который имеет имя, тип, дату создания и прочую служебную информацию. Файл является элементом хранения информации на жёстком диске. Большинство подсистем операционной системы, прикладные программы и пользователи имеют дело именно с файлами.
Разные виды файлов - текстовые, аудио/видео, docx и т.д. - операционная система и прикладные программы обрабатывают по-разному.
Для операционной системы особенно важными являются исполняемые файлы. Формат исполняемых файлов в разных операционных системах разный. Для ОС Windows основными исполняемыми файлами являются:
- exe-файлы (имеют расширение exe) - самостоятельные программы на машинном языке, которые Windows загружает с жёсткого диска в оперативную память и передаёт на исполнение процессору;
- dll-файлы (имеют расширение dll) подобно exe-файлам содержат код на машинном языке и точно также исполняются, но не являются самостоятельными программами: для реализации модульности программ, позволяющей компоновать код в разные исполняемые файлы (для эффективного выполнения, а также, во многом, для удобств разработки).
Файловая система поддерживает функции сохранения файлов на жестком диске и доступа к ним - как для программ, так и для непосредственных пользователей компьютера. Она же поддерживает иерархию папок. Для операционной системы Windows общеупотребимыми файловыми системами являются FAT и NTFS.
- Исторически FAT (File Allocation Table) была первой файловой системой для IBM PC и предназначалась для работы с гибкими и жёсткими дисками. В настоящее время эта файловая система вытесняется более современными файловыми, но для совместимости со старыми ОС она до сих пор часто используется на съёмных накопителях - "флэшках" и внешних жёстких дисках. Можно столкнуться со следующим ограничением FAT: эта файловая система не позволяет работать с файлами, имеющими размер больше, чем 4 Gb, а также она не поддерживает разграничение прав доступа. Основанная на FAT более современная файловая система exFAT позволяет работать с файлами размером более 4 Gb.
- NTFS (New Technology File System) появилась в Windows NT и используется сейчас в операционных системах семейства Windows в качестве основной. NTFS поддерживает разграничение прав доступа к файлам и папкам, а также сжатие и шифрование файлов. Файловая система NTFS может также восстанавливаться после сбоев. Например, если из папки был удалён файл, но из-за внезапного отключения электропитания освободившееся на жестком диске место не было помечено как свободное, то при возобновлении питания и файла на диске больше не найти, и соответствующее место не использовать. NTFS умеет корректно решать эту и подобные ей проблемы.
Разграничение прав доступа пользователей. В случае, когда одним компьютером могут пользоваться разные люди, требуется обеспечить разграничение доступа к ресурсам и данным этого компьютера - файлам и каталогам, теми или иными приложениями (программами), установленными на компьютере, принтерами и т.д. Часть из этих возможностей может быть доступна всем пользователям данного компьютера, но некоторой частью может пользоваться только администратор компьютера и те пользователи, которых он выберет. Эта задача также является актуальной для локальных сетей, администрирование которых также осуществляется средствами операционной системы.
Для решения задачи разграничения прав доступа каждый пользователю компьютера создаётся учётная запись (Account). Помимо учётных записей для "настоящих" пользователей (людей), в ОС часто имеет несколько служебных учётных записей, "от лица" которых запускаются служебные программы - средства резервного копирования данных, веб-сервера, сервера баз данных и т.д. Защита этих данных обеспечивается механизмом разграничения прав доступа: обычный пользователь не имеет прав для изменения этих данных, поэтому он не может их умышленно или случайно изменить. Например, обычный пользователь Windows не может непосредственно через Проводник записывать и удалять файлы в системных папках, но может делать это только через инсталляцию или деинсталляцию новых приложений, то есть посредством специальных пакетных процедур. В момент работы таких процедур как раз и активизируются служебные учетные записи.
Сетевая поддержка (Networking) обеспечивает возможность подключения компьютера к локальным и глобальным сетям связи (сегодня это, в основном, Internet, для мобильных ОС - мобильные сети). Сетевая работа ведётся с использованием сложной многоуровневой системы сетевых протоколов, реализующих передачу пакетов и отслеживание их целостности, обработку различных сетевых ошибок и т.д. Программная реализация этих протоколов строится на основе модели сетевого стека (Network Stack) и имеет многоуровневую архитектуру. Подразумевает, что со стороны сети аналогичные стеки реализуются ассамблеями различных сетевых устройств - роутеров, файерволов, концентраторов и пр.
Интерфейс пользователя (User Interface) является подсистема ОС, предназначенной для взаимодействия с конечным пользователем, предоставляя ему возможности использовать различные ресурсы компьютера. Настольные и мобильные ОС (Windows, Mac OS X, настольные версии Linux, iOS, Android) предоставляют пользователям графический интерфейс, используя метафору рабочего стола: компьютер имитирует на экране различные "офисные" предметы - папки, картотеки, документы и т.д. Значительное внимание в последние десятилетия уделяется работе с компьютером людей с ограниченными возможностями. Так, например, многие современные настольные ОС поддерживают голосовой ввод и озвучку текста на экране. Для серверных ОС традиционным интерфейсом пользователя является текстовая консоль - подсистема ОС, позволяющая вводить с клавиатуры данные и команды и отображать результаты на мониторе в текстовом виде 1Исторически термин "консоль" обозначал устройство, объединяющее функции ввода и вывода данных и управляющих команд компьютера, например, комплект из клавиатуры и монитора. До конца 1970-х гг. устройства ввода и вывода зачастую выпускались в общем корпусе, что и послужило причиной возникновения термина. До широкого распространения мониторов в качестве консолей использовались телетайпы (клавиатура и принтер, которые могли подключаться к линиям связи).. Консоль обеспечивает диалог пользователя с командной оболочкой ОС, работающей на сервере, позволяя управлять СУБД, веб-серверами и т.д. Также консоль позволяет запускать и интерактивные программы, например, текстовые редакторы, для редактирования системных настроек.
Система управления питанием (Power Management) особенно актуальна для мобильных ОС, т.к. ноутбуки, смартфоны, планшеты работают на аккумуляторах. В этих устройствах важно обеспечить оптимальный расход питания, чтобы компьютер мог работать максимально долго без подсоединения к электрической сети. Также важна поддержка контроля цикла зарядки/разрядки аккумуляторов для продления их срока службы.
Вопросы
- Объясните назначение операционной системы.
- Дайте определение понятию операционной системы.
- Перечислите основные функции операционной системы.
- Что такое драйвер устройства и зачем он нужен?
- Что такое псевдо-параллелизм?
- Что такое процесс и как процесс соотносится с программой?
- Зачем требуется разграничение прав доступа пользователей?
- Что такое системная учётная запись?
- Что такое файл?
- Какие функции выполняет файловая система?
- Перечислите известные Вам файловые системы.
- Расскажите о свойствах файловой системы NTFS.
Литература
- Таненбаум Э., Бос Х. Современные операционные системы. 4-е изд. СПб.: Питер, 2015. 1120 с.
- Цикритзис Д., Бернстайн Ф. Операционные системы [пер. с англ.] М.: Издательство "Мир", 1977. 336 с.
- Silberschatz A., Gagne G., Galvin P. B. Operating System Concepts, 10th edition. Wiley, 2018. 951 p.
- Stallings W. Operating systems: internals and design principles. Pearson Education Limited, 2018.
- Walden D., Van Vleck T. Compatible Time-Sharing System (1961-1973): Fiftieth Annversary Commemorative Overview. IEEE Computer Society, 2011.