Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Современные операционные системы (90

..pdf
Скачиваний:
2
Добавлен:
15.11.2022
Размер:
445.26 Кб
Скачать

Министерство образования и науки Российской Федерации Ярославский государственный университет им. П. Г. Демидова Кафедра компьютерных сетей

А. В. Лукьянов

Современные операционные системы

Методические указания

Рекомендовано Научно-методическим советом университета для студентов, обучающихся по направлению

Прикладная математика и информатика

Ярославль 2012

УДК 004.451(072) ББК 3973.2-018.2я73

Л 84

Рекомендовано Редакционно-издательским советом университета

в качестве учебного издания. План 2012 года

Рецензент — кафедра компьютерных сетей Ярославского государственного университета им. П. Г. Демидова

Лукьянов, А. В. Современные операционные си-

Л84 стемы: методические указания / А. В. Лукьянов; Яросл. гос. ун-т. — Ярославль: ЯрГУ, 2012. — 44 с.

Вметодических указаниях даны необходимые определения, рассмотрена история развития и классификация операционных систем по различным признакам. Представлена типичная структура ОС и её основные подсистемы. Описаны и классифицированы некоторые алгоритмы, по которым работают подсистемы ОС. Приведены примеры из ОС UNIX, Linux, Windows NT.

Предназначены для студентов, обучающихся по специальности 010501.65 Прикладная математика и информатика (дисциплина «Современные операционные системы», блок ДС), очной формы обучения.

УДК 004.451(072) ББК 3973.2-018.2я73

© Ярославский государственный университет им. П. Г. Демидова, 2012

Введение

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

В настоящих методических указаниях даются ключевые определения, важные для понимания сущности операционных систем, описывается структура ОС, приводится классификация ОС по различным признакам. Перечисляются основные подсистемы ОС, описываются алгоритмы их функционирования и приводится их классификация.

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

Начнём с наиболее важных определений.

1. Ключевые определения

Операционная система — набор программ и библиотек подпрограмм, которые выполняют следующие функции:

создают среду выполнения других программ;

управляют ресурсами компьютера (память, процессоры, диски, внешние устройства);

реализуют базовый интерфейс взаимодействия пользователя с компьютером.

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

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

Прикладные программы не входят в состав операционной системы, но используют её как основу для своей работы. Некоторые

3

прикладные программы (например: текстовый редактор, калькулятор и другие) могут поставляться вместе с операционной системой в одном «дистрибутиве».

Рис. 1. Многослойная структура компьютера

На рис. 1 показано положение операционной системы и её ядра в многослойной структуре компьютерной системы. На этой диаграмме видно, что операционная система опирается на аппаратную часть компьютера и на встроенное программное обеспечение (firmware), при этом системное программное обеспечение использует ядро ОС, а прикладные программы выполняются в среде, создаваемой ядром ОС и системными программами.

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

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

4

Процессы взаимодействуют с ядром операционной системы и могут взаимодействовать с другими процессами, передавать им данные и синхронизировать свою работу.

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

Планировщик задач (scheduler) — подсистема ядра, планирующая распределение процессорного времени между нитями. Планировщик учитывает статистические данные и административно заданные параметры нитей и процессов. Существуют различные алгоритмы, по которым работает планировщик задач. Более подробно классификация этих алгоритмов дана в разделе 5.

Данные определения являются наиболее важными для дальнейшего изучения операционных систем.

2. История развития ОС

Для того чтобы лучше понять назначение операционных систем, рассмотрим историю их возникновения и развития.

Можно выделить несколько периодов в развитии компьютеров и соответствующих периодов развития ОС. По мере увеличения производительности компьютеров узкое место (bottleneck) при решении задач изменялось, при этом менялась и стратегия оптимизации работы со стороны ОС. Рассмотрим основные периоды.

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

1955–1965 годы. Появились компьютеры на базе полупроводниковых транзисторов. Надёжность компьютеров и объем их памяти увеличились. Компьютеры стали решать практически важные задачи (в основном математические и физические). Появились внешние запоминающие устройства (ЗУ), такие как перфорато-

5

ры на перфокартах, перфолентах, ЗУ на магнитной ленте. Произошло разделение персонала на разработчиков и пользователей (операторов).

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

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

1965–1980 годы. Произошёл переход от транзисторов к интегральным схемам, что ещё больше увеличило объем памяти и быстродействие компьютеров. Появились также дисковые ЗУ, позволяющие обращаться к записанным данным без длительного поиска, необходимого при использовании магнитной ленты.

В этот период появилось понятие программной совместимости компьютеров. Если до этого каждый компьютер создавался уникальным и для него одного разрабатывалось программное обеспечение (ПО), то в этот период появились серии компьютеров, которые были программно-совместимыми, исполняли одну и ту же операционную систему и те же прикладные программы. Первой такой серией стали компьютеры IBM/360. За счёт экономии средств на разработку архитектуры и программное обеспечение эти компьютеры имели более низкий показатель цена/производительность по сравнению с другими компьютерами, что сделало идею совместимости общепризнанной.

Для работы на программно-совместимых компьютерах потребовались новые операционные системы, которые могли работать

6

как на больших, так и на относительно малых компьютерах, с разнообразными периферийными устройствами. Для компьютеров IBM/360 была разработана операционная система OS/360. Отечественные аналоги этого компьютера и ОС — ЕС 1 ЭВМ и ОС ЕС.

Важнейшее достижение в области операционных систем — разработка мультипрограммирования (многозадачности). При этом способе организации вычислений на одном процессоре попеременно выполняется несколько программ. Пока одна программа ждёт завершения операции ввода-вывода, процессор не простаивает, а выполняет другую программу. Каждая программа при этом размещается в своём участке оперативной памяти (разделе, сегменте). Мультипрограммирование позволило более эффективно использовать ресурсы компьютера за счёт параллельного исполнения операций на разных устройствах.

Кроме мультипрограммирования, появилась подсистема спулинга (spooling). Спулинг — временное размещение данных с медленного ЗУ на более быстром ЗУ для их последующего использования или, наоборот, временное размещение данных на быстром ЗУ для последующего переноса на медленное ЗУ. При этом обычно медленным ЗУ являлся перфоратор или принтер, а быстрым — дисковый накопитель. Например, подсистема спулинга может считывать перфокарты по мере их поступления и сохранять данные на диске для их последующей обработки. При этом достигается более эффективное использование компьютера за счёт параллельного считывания перфокарт и исполнения какой-либо другой программы. Другое применение спулинга — организация очереди вывода на принтер. Программа отправляет задание в очередь печати и продолжает работу, а подсистема спулинга занимается выводом этого задания на принтер.

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

1ЕС — единая серия.

7

такой режим работы за счёт накладных расходов на переключение задач и не столь эффективного ввода-вывода, как в системах пакетной обработки.

1980 – наше время. Этот период развития связан с появлением больших и сверхбольших интегральных схем (БИС, СБИС). Это позволило создать ещё более мощные компьютеры, у которых было больше памяти и более быстрые процессоры. При этом стоимость компьютеров снизилась настолько, что отдельные люди смогли позволить себе их приобретать. Появились персональные компьютеры (ПК).

Операционные системы персональных компьютеров отличаются от ОС больших компьютеров. Большие компьютеры приобретались организациями, которым необходимо было оправдать средства, потраченные на покупку компьютера (то есть требовалось наиболее эффективно использовать все имеющееся процессорное время). В частности, ОС пакетной обработки предназначены именно для этого, а ОС разделения времени стремятся увеличить нагрузку на ЦП за счёт одновременной работы нескольких пользователей. Персональные компьютеры приобретались индивидуальными пользователями, и на первом плане было удобство использования компьютера и эффективность использования личного времени. Операционная система, реализующая базовый интерфейс, играла в этом важную роль. Появилось понятие «дружественности» программного обеспечения.

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

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

8

на компьютерах. Это Windows производства Microsoft, MacOS производства Apple, варианты UNIX разных производителей, Linux, различные специализированные системы (IOS, QNX и другие).

Таблица 1

Список некоторых операционных систем

Название

Производитель

Платформа

 

Год

Android2

Google

мобильные устройства

2008

iOS

Apple

мобильные устройства

2007

IOS

Cisco Systems

маршрутизаторы,

коммута-

1986

 

 

торы

 

 

Linux

Linus Torvalds3

ПК, серверы, мобильные

1991

 

 

устройства,

 

 

 

 

маршрутизаторы и др.

 

MacOS

Apple

ПК

 

1984

MS-DOS

Microsoft

ПК

 

1981

NetWare

Novell

серверы

 

1983

OS/2

IBM

ПК, серверы

 

1987

OS/360

IBM

мейнфреймы

 

1965

PalmOS

Palm Inc.

КПК

 

1996

Plan 9

Bell Labs

ПК, серверы

 

1986

QNX

Quantum SS

промышленные

компьюте-

1984

 

 

ры

 

 

Symbian

консорциум4

мобильные устройства

1998

UNIX

Bell Labs5

ПК, серверы

 

1969

VMS

Digital

серверы

 

1978

Windows

Microsoft

ПК

 

1985

Windows NT6

Microsoft

ПК, серверы

 

1993

В таблице 1 показаны некоторые наиболее значимые операционные системы, год их появления, производитель, аппаратная платформа, на которой они работают (или работали), год выпуска первой версии.

Контрольные вопросы

1)что явилось предпосылкой создания операционных систем?

2)какую основную задачу решают ОС пакетной обработки?

3)что характерно для ОС персональных компьютеров?

2Android основан на ядре Linux.

3Разработка и поддержание ядра Linux ведётся в настоящее время большим сообществом разработчиков. Операционные системы на базе ядра Linux выпускаются различными производителями.

4Symbian разрабатывают Psion, Nokia, Ericsson, Motorola, Sony Ericsson, Siemens, Panasonic, Fujitsu, Samsung, Sony, Sharp и Sanyo.

5Варианты UNIX выпускались различными производителями: AT&T, Sun, IBM, Digital, Microsoft, SCO и др.

6Потомки Windows NT — Windows 2000, XP, Vista, 7, 8.

9

3. Обзор архитектуры ОС

Несмотря на разнообразие существующих операционных систем, в них можно выделить общую структуру организации.

В структуре ОС можно выделить несколько частей.

Прежде всего это ядро (kernel), та программа, которая всегда находится в памяти при нормальной работе ОС. Как правило, ядро выполняет функции распределения ресурсов компьютера (процессора, памяти) между работающими программами, осуществляет ввод-вывод, реализует работу с файловыми системами. Схема взаимодействия ядра с ресурсами компьютера и работающими программами показана на рис. 2.

Applications

Kernel

CPU Memory Devices

Рис. 2. Схема взаимодействия ядра ОС

Ядро ОС загружается в память начальным загрузчиком (boot loader). Начальный загрузчик представляет собой достаточно простую программу, которая способна работать без операционной системы в среде, которую создаёт встроенное ПО (микропрограмма, firmware, BIOS). На некоторых компьютерах начальный загрузчик интегрирован во встроенное ПО.

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

Кроме ядра, имеются также системные программы . Эти про-

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]