Справочник от Автор24
Поделись лекцией за скидку на Автор24

Операционные системы: общие сведения

  • 👀 1045 просмотров
  • 📌 1001 загрузка
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Операционные системы: общие сведения» pdf
Дисциплина «Информационные технологии» Лекция №3 «Операционные системы: общие сведения» автор., ст. преп. П. А. Осипов ЛЕКЦИЯ №3 «ОПЕРАЦИОННЫЕ СИСТЕМЫ» 1.1. Понятие, функции, классификация и эволюция операционных систем. Компоненты операционных систем: ядро, загрузчик, интерпретатор команд, драйверы устройств, интерфейс, встроенное программное обеспечение. 1.2. Понятие операционной среды и прикладного интерфейса программирования. Вычислительный процесс и ресурс. Прерывания. Мультипрограммирование и многозадачность. 1.1. Понятие, функции, классификация и эволюция операционных систем Операционные системы (ОС) относятся к системному программному обеспечению (ПО). К системному программному обеспечению принято относить такие программы и комплексы программ, которые являются основными, т.е. без которых невозможно выполнение или создание других программ. Классически программное обеспечение принято подразделять по назначению (рис. 1): 1. Системное - комплекс программ, обеспечивающих управление компонентами компьютерной системы (процессор, оперативная память, устройства ввода-вывода, сетевое оборудование), выступая интерфейсом между аппаратурой и приложениями пользователя. Системное ПО обеспечивает работу других программ посредством сервисных функций, которые абстрагируют аспекты аппаратной и микропрограммной реализации вычислительной системы, и управляет аппаратными ресурсами вычислительной системы. К системному ПО относятся операционные системы, утилиты, системы программирования, системы управления базами данных, широкий класс связующего программного обеспечения. 2. Прикладное – ПО предназначенное для выполнения пользовательских задач и рассчитанное на непосредственное взаимодействие с пользователем. Например, текстовые и графические редакторы, средства просмотра видео и прослушивания музыки. 3. Инструментальное – ПО предназначенное для использования в процессе проектирования, разработки и сопровождения программ. Например языки программирования и системы управления базами дынных. Операционная система (англ. operating system) — комплекс системных (программы, которые используются другими программами для доступа к ресурсам ОС) управляющих и обрабатывающих программ, которые выступают как интерфейс между устройствами вычислительной системы и прикладными программами и пользователем, а также предназначены для управления устройствами и вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений. Рисунок 1. Место операционной системы в структуре компьютера Функции операционных систем 2 – Прием от пользователя (оператора) заданий, или команд, сформулированных на соответствующем языке, и их обработка. Задания могут передаваться в виде текстовых директив (команд) оператора или в форме указаний, выполняемых с помощью манипулятора (мыши, тачпада). Команды связаны с запуском (приостановкой, остановкой) программ, с операциями над файлами (создать, переименовать, скопировать, переместить файл и др.) и другими действиями. – Загрузка в оперативную память подлежащих исполнению программ. – Распределение и организация виртуальной памяти. – Запуск программы, т.е. передача ей управления, в результате чего процессор исполняет программу. – Идентификация всех программ и данных. – Прием и исполнение различных запросов от выполняющихся программ. Операционная система умеет выполнять очень большое количество системных функций (сервисов), которые могут быть запрошены из выполняющейся программы. Обращение к этим сервисам осуществляется по соответствующим правилам, которые и определяют интерфейс прикладного программирования или операционная среда (Application Program Interface, API) этой операционной системы. – Обслуживание всех операций ввода-вывода данных. – Обеспечение работы систем управлений файлами и/или систем управления базами данных (СУБД), что позволяет резко увеличить эффективность всего программного обеспечения. – Обеспечение режима мультипрограммирования, то есть организация параллельного выполнения двух или более программ на одном процессоре, создающая видимость их одновременного параллельного исполнения. – Планирование и диспетчеризация задач в соответствии с заданными стратегией и дисциплинами обслуживания. – Организация механизмов обмена сообщениями и данными между выполняющимися программами. – Для сетевых операционных систем функция обеспечения взаимодействия связанных между собой компьютеров. Практически все современные ОС являются сетевыми, т.е. способны подключаться к локальным и глобальным сетям (Интернет). 3 – Защита одной программы от влияния другой, обеспечение сохранности данных, защита самой операционной системы от исполняющихся на компьютере приложений. – Аутентификация и авторизация пользователей для диалоговых операционных систем. Под аутентификацией понимается процедура проверки соответствия имени пользователя и его пароля на соответствие значению его учетной записи. Авторизация означает, присвоение прав и привилегий в операционной системе. Например пройдя аутентификацию с логином и паролем администратора компьютера пользователя авторизует ОС с максимально возможными правами администратора. – Удовлетворение жестким ограничениям на время ответа в режиме реального времени (характерно для операционных систем реального времени). – Обеспечение работы языков и систем программирования, с помощью которых пользователи готовят свои программы. – Предоставление услуг на случай частичного сбоя системы. Операционная система изолирует аппаратное обеспечение компьютера от прикладных программ пользователей. И пользователь, и его программы взаимодействуют с компьютером через интерфейсы операционной системы. Классификация операционных систем 1. По числу одновременно выполняемых задач: 1.1. Однозадачные – поддерживают режим выполнения только одной программы в отдельный момент времени, например, MS-DOS. 1.2. Многозадачные – поддерживают параллельное выполнение нескольких программ в рамках одной вычислительной системы в один момент времени, например: UNIX, OS/2, Windows, Mac. 1.2.1. Пакетной обработки – из программ, подлежащих выполнению, формируется пакет или набор заданий, вводимых в компьютер и выполняемых в порядке очередности с возможным учетом приоритетности. Данные ОС предназначены для решения максимального числа задач в единицу времени, которые не требуют быстрого получения результатов. Обеспечивают высокую производительность при обработке больших объемов информации, но снижают эффективность работы пользователя в интерактивном режиме (ОС ЕС). 4 1.2.2. Разделения времени – обеспечивают одновременный диалоговый (интерактивный) режим доступа к компьютеру пользователям на разных терминалах, которым по очереди выделяются ресурсы машины, что координируется операционной системой в соответствии с заданной дисциплиной обслуживания. Для выполнения каждой задачи выделяется небольшой промежуток времени, и ни одна задача не занимает процессор надолго. Если этот промежуток времени выбран минимальным, то создается видимость одновременного выполнения нескольких задач. Обладают меньшей пропускной способностью по сравнению с пакетными, но обеспечивают высокую эффективность работы пользователя в интерактивном режиме (все современные ОС персональных компьютеров: Unix, Linux, Windows). 1.2.3. Реального времени – системы, которые обеспечивают определенное гарантированное время ответа машины на запрос пользователя при управлении им внешними событиями, процессами или объектами по отношению к компьютеру. Применяются для управления технологическим процессом или техническим объектом, например, летательным объектом, станком и т.д. (RT11, QNX). 2. Классификация операционных систем по числу одновременно работающих пользователей: 2.1. Однопользовательские – поддерживают работу только одного пользователя (MS-DOS, Windows 3.x). 2.2. Многопользовательские (Unix, Linux, Windows, Mac OS) – поддерживают одновременную работу на компьютере нескольких пользователей за различными терминалами, настройку пользовательского интерфейса для каждого пользователя (собственные наборы ярлыков, группы программ, индивидуальную цветовую схему, переместить в удобное место панель задач и добавить в меню Пуск новые пункты) и имеют механизмы защиты персональных данных каждого пользователя от несанкционированного доступа других пользователей. 3. По мощности аппаратных средств: 3.1. Операционные системы суперкомпьютеров или мейнфреймов – ориентированы на обработку множества одновременных заданий и огромного количества операций ввода5 вывода. Мэйнфрейм или суперкомпьютер - мощный компьютер, которые используется в центрах данных компаний и имеет большое количество дисков с терабайтами данных. Мэйнфреймы представлены в виде мощных интернет-серверов, суперкомпьютеров в научных центрах и серверов для транзакций в бизнесе. Операционные системы для мэйнфреймов в основном обычно предлагают три вида обслуживания: 3.1.1. Пакетную обработку – ОС выполняющую стандартные задания без присутствия пользователей, работающих в интерактивном режиме, например, обработку исков в страховых компаниях, составление отчетов о продажах для цепи магазинов; 3.1.2. Системы обработки транзакций – системы, которые управляют очень большим количеством маленьких запросов, например, контролируют процесс работы в банке или бронирование авиабилетов, каждый отдельный запрос невелик, но система должна отвечать на сотни или тысячи запросов в секунду; 3.1.3. Системы разделения времени – системы, которые позволяют множеству удаленных пользователей одновременно выполнять свои задания на одной машине, например, работа с большой базой данных. Указанные функции тесно связаны между собой, и зачастую операционная система мэйнфрейма выполняет их все, например, операционная система OS/390, произошедшая от OS/360. 3.2. Серверные операционные системы – системы, которые работают на серверах и представляют собой очень мощные персональные компьютеры, рабочие станции или мэйнфреймы. Они одновременно обслуживают множество пользователей и дают возможность им делить между собой программные и аппаратные ресурсы. Серверы предоставляют возможность работы с печатающими устройствами, файлами или Интернетом. Интернетпровайдеры обычно запускают в работу несколько серверов для того, чтобы поддерживать одновременный доступ к сети множества клиентов. На серверах хранятся страницы web-сайтов и обрабатываются входящие запросы. Типичными серверными операционными системами являются ОС семейства Linux и Windows. 3.3. Операционные системы для персональных компьютеров – предоставляют удобного интерфейса для 6 пользователя. Такие системы широко используются для работы с текстом, электронными таблицами и для доступа к Интернету. Например: Windows, Mac и Linux. В настоящее время распространены следующие семейства операционных систем: Windows; Linux, iOS. 3.4. Встроенные операционные системы – простые операционные системы, устанавливаемые в принтерах, кассовых аппаратах и других внешних устройствах. Состоят из микроядра и функциональных блоков, обеспечивающих подключение в сеть внешнего устройства. Такие системы, управляющие действиями устройств, работают на машинах, обычно не считающихся компьютерами, например, в телевизорах, микроволновых печах, мобильных телефонах и карманных компьютерах. Данный класс систем часто обладает такими же характеристиками, что и системы реального времени, но при этом имеют особый размер, память и ограничение мощности, что выделяет их в обособленный класс. Например, операционные системы: Palm OS, iOS, Android, Windows Phone. 3.5. Операционные системы для смарт-карт – самые маленькие операционные системы, которые работают на смарткартах. Смарт-карты представляют собой устройства размером с кредитную карту, содержащие центральный процессор. На операционные системы накладываются крайне жесткие ограничения по мощности процессора и памяти. Некоторые из них могут управлять только одной операцией, например электронным платежом, другие выполняют более сложные функции. Часто они являются патентованными системами. Некоторые смарт-карты являются Java-ориентированными. Это означает, что ПЗУ (постоянная память, ROM, Read Only Memory – память только для чтения) смарт-карт содержит интерпретатор виртуальной машины Java (JVM, Java Virtual Machine). Апплеты Java (маленькие программы) загружаются на карту и выполняются JVMинтерпретатором. Некоторые из таких карт могут одновременно управлять несколькими апплетами Java, что приводит к многозадачности и необходимости планирования. Из-за одновременной работы двух и более программ возникает необходимость в управлении ресурсами и защитой. Все эти задачи выполняет операционная система, находящаяся на смарт-карте. 7 4. Классификация операционных систем по разрядности кода: – 8-разрядные; – 16-разрядные; – 32-разрядные; – 64-разрядные. Разрядность показывает, какую разрядность внутренней шины данных центрального процессора способна поддержать операционная система, и определяет программы, с которыми она будет работать. Все современные операционные системы поддерживают 32 или 64разрядный интерфейс прикладных программ. Разрядность кода интерфейса прикладных программ имеет непосредственное отношение к адресному пространству оперативного запоминающего устройства (ОЗУ). Адресное пространство памяти – это область адресов памяти, распределяющейся между операционной системой и данными; между видеопамятью, памятью BIOS, блоком информации запрещенного режима работы и т. д. Операционная система может поддерживать два режима работы центрального процессора: реальный и защищенный. В реальном режиме работы процессора, характерном для MS-DOS, все программы и данные располагаются в одной области оперативной памяти, т. е. пользователь может войти в системную программу и случайно испортить ее. Защищенный режим работы процессора поддерживается 32-разрядными операционными системами и позволяет хранить программы и данные отдельно в соответствии с их важностью в системе. 5. Классификация операционных систем по количеству поддерживаемых процессоров: однопроцессорные и многопроцессорные. До недавнего времени вычислительные системы имели один центральный процессор. В результате требований к повышению производительности появились многопроцессорные системы, состоящие из двух и более процессоров общего назначения, осуществляющих параллельное выполнение команд. Данный способ увеличения мощности компьютеров заключается в соединении нескольких центральных процессоров в одной системе. В зависимости от вида соединения процессоров и разделения работы такие системы называются параллельными компьютерами, мультикомпьютерами или многопроцессорными системами. Для них требуются специальные операционные системы, но часто они 8 представляют собой варианты серверных операционных систем со специальными возможностями связи. Поддержка мультипроцессирования является важным свойством операционных систем и приводит к усложнению всех алгоритмов управления ресурсами. Многопроцессорная обработка реализована в операционных системах: Linux, Windows NT и др. Многопроцессорные операционные системы подразделяются на: – симметричные – на каждом процессоре функционирует одно и то же ядро и задача может быть выполнена на любом процессоре, т. е. обработка полностью децентрализована, при этом каждому из процессоров доступна вся память; – асимметричные – системы, в которых процессоры неравноправны, обычно существует главный процессор (master) и подчиненные (slave), загрузку и характер работы которых определяет главный процессор. 6. Классификация операционных систем по типу использования ресурсов. 6.1. Стандартные операционные системы (операционные системы общего назначения) – используются для реализации следующих задач: – управления аппаратными средствами компьютера; – создания рабочей среды и интерфейса пользователя; – выполнения команд пользователя и программных инструкций; – организации ввода-вывода; – хранения и управления файлами и данными. Наиболее известными стандартными операционными системами являются семейства Windows, Linux, iOS. 6.2. Сетевые операционные системы – системы, предназначенные для управления ресурсами компьютеров, объединенных в сеть с целью совместного использования данных, которые предоставляют мощные средства разграничения доступа к данным в рамках обеспечения их целостности и сохранности, а также сервисные возможности по использованию сетевых ресурсов. Сетевые операционные системы подразделяются на следующие типы: – одноранговые операционные системы, которые могут устанавливаться на любой рабочей станции и использоваться самостоятельно в виде отдельных программных средств, либо входить в состав пакетов, другую половину которых представляют 9 программы, обслуживающие мощные компьютеры управления сетями – серверы, например: Windows 10; – серверные операционные системы, которые отличаются большей сложностью и мощностью, полностью заменяют собой стандартную операционную систему и состоят из 2 частей, одна из которых расположена на сервере, другая – на рабочих станциях. К числу серверных операционных систем с высокой производительностью и широкими сетевыми возможностями относятся: Windows Server 2019 и др. Операционная система Windows Server 2019 базируется на платформе Windows NT Server, в отличие от которой имеет более высокую производительность и надежность. 8. Классификация операционных систем по типу используемого интерфейса: – текстовые – операционные системы, основанные на интерфейсе командной строки, например: OS/360, CP/M, первые версии MS-DOS и UNIX; – поддерживающие графический интерфейс, например, семейства операционных систем Microsoft Windows. 9. Классификация по семействам операционных систем. Часто можно проследить преемственность между различными операционными системами, необязательно разработанными одной компанией. Преемственность обусловлена требованиями совместимости или переносимости прикладного программного обеспечения и заимствованием отдельных удачных концепций. На основании преемственности можно выстроить генеалогические деревья операционных систем и объединить их в семейства. Можно выделить минимум три семейства ныне эксплуатирующихся операционных систем и несколько вымерших или близких к тому: – системы для больших компьютеров фирмы IBM: OS/390, z/OS и IBM VM; – семейство Unix обширное, постоянно развивающееся, выделяют три рода: Unix System V Release 4.x: Sunsoft Solans, SCO UnixWare; Berkeley Software Distribution Unix: BSDI, FreeBSD; Linux; – семейство прямых и косвенных потомков Control Program/Monitor (СР/М) фирмы Digital Research; в этом семействе 10 выделяют широко известное подсемейство \sisname{Win 32}платформ; – семейство практически вымершее, но оставившее в наследство ряд важных и интересных концепций: операционные системы для мини- и микрокомпьютеров фирмы DEC: RT-11, RSX-11 и VAX/VMS; – семейства операционных систем Windows, в настоящее время существует несколько различающихся направлений в семействе: Windows XP, 7, 8, 10, Windows Server 2019. Среди общего числа версий Windows есть преемники принципиально нового направления, технологии NT (New Technology, разрабатываемойMicrosoft с 1989 г.). К операционным системам технологии NT предъявляется ряд повышенных требований, в сравнении с потребительскими версиями Windows: поддержка многопроцессорных систем, вытесняющая многозадачность, работа с виртуальной памятью, защищенная файловая система и др. К ним относятся все версии операционных систем Windows 8 и Windows 10. Системные файлы этих модификаций одинаковы, как и ядро операционных систем. Они различаются между собой по числу поддерживаемых процессоров, объему поддерживаемой физической памяти, одновременному числу сетевых подключений и наличием дополнительных сетевых сервисов. Выбор типа операционной системы часто представляет собой сложную задачу. Некоторые приложения накладывают жесткие требования, которым удовлетворяет только небольшое количество систем. Например, задачи управления промышленным или исследовательским оборудованием в режиме жесткого реального времени вынуждают делать выбор между специализированными операционными системами реального времени и некоторыми операционными системами общего назначения, такими как Unix System V Release 4. Хотя Unix SVR4 теоретически способна обеспечивать гарантированное время реакции, системы этого семейства имеют ряд недостатков с точки зрения задач реального времени, поэтому чаще всего предпочтительными оказываются специализированные операционные системы (QNX, VxWorks, OS-9 и пр.). Другие приложения, например серверы баз данных, требуют высокой надежности и производительности, что отсекает системы класса Windows. 11 Некоторые задачи, такие как автоматизация конторской работы в небольших организациях, не предъявляют высоких требований к надежности, производительности и времени реакции системы, поэтому можно выбирать между различными Windows, Mac OS и другими операционными системами общего назначения. При этом технические параметры системы перестают иметь значимость, так как основополагающую роль играют другие факторы. Эволюция операционных систем Этапы развития ОС тесно связаны с историей развития вычислительных систем, поэтому их стоит рассматривать вместе. Развитие вычислительных комплексов будем рассматривать начиная электронных вычислительных систем, опуская при этом механические и электромеханические устройства. Период – годы – аппаратное Программное обеспечение обеспечение I - 1945-1955 ОС не существует Ламповые Компьютеры стоили очень дорого, были вычислительные громоздки и для них не существовало ОС. устройства Управление компьютером осуществлялось с пульта, программы загружались с переключателей или перфокарт. В конце периода появляется первое системное программное обеспечение: - в 1951–1952 гг. возникают прообразы первых компиляторов с символических языков (Fortran и др.); - в 1954 г. Nat Rochester разрабатывает Ассемблер для IBM-701. Программы выполнялись в режиме последовательной обработкой данных. В целом первый период характеризуется крайне высокой стоимостью вычислительных систем, их малым количеством и низкой эффективностью использования. 12 II - 1955-1960 Системы пакетной обработки Транзисторные Появилась новая техническая баз для ВУ компьютеров - полупроводниковые элементы. Повысилась надежность, компактность, энергоэффективность - началось коммерческое использование компьютеров. Появляются первые компиляторы, библиотеки подпрограмм. Процессор подолгу простаивает между выполнением программы на процессоре и вводом-выводом данных поэтому компьютер работает в пакетном режиме и появляются системы пакетной обработки. III - 1960-1980 Многозадачные ОС режим ВУ на основе мультипрограммирования пакетных ОС интегральных В технической базе произошел переход к микросхем интегральным микросхемам. Компьютеры стали еще более компактными, дешевыми и производительными. Устройства ввода вывода с последовательным доступом (магнитная лента) сменились магнитным диском - накопителем информации с доступом к любой области памяти. Многозадачные ОС разделения времени С появлением дисплеев и клавиатур стало возможным вести диалоговый режим работы пользователя и компьютера. Появляется семейство компьютеров IBM с унифицированной для них ОС OS/360. IV 1980Сетевые и распределенные ОС настоящее Появление БИС привело к возрастанию время - ВУ на степени интеграции и снижение стоимости основе больших микросхем - компьютер стал доступен отдельному интегральных человеку. Развиваются компьютерные сети и микросхем наступает эра ПК. История появления и развития системного программного обеспечения началась с момента осознания, что любая программа требует операций ввода-вывода данных. Это произошло в 50-е годы прошлого столетия, а операционные системы появились чуть позже. 13 Если не будет возможности изменять исходные данные и получать результаты вычислений, то необходимость в вычислениях отпадает. Исходные данные могут вводиться различными способами, на практике используются самые разнообразные устройства и методы: клавиатура, указатель мыши, считывать записи из файла, снимать оцифрованные значения с датчиков и т. д. Часть исходных данных может быть передана в программу через область памяти, в которую предварительно другая программа занесла свои результаты вычислений. Главное — выполнить в программе некоторые действия, связанные с получением исходных данных. Аналогично, и вывод результатов может быть организован на соответствующие устройства и в форме удобной для восприятия человеком: результаты расчетов будут отправляться программой на исполнительные устройства, которые управляются компьютером; запись полученных значений на некие устройства хранения данных (с целью их дальнейшей обработки). Программирование операций ввода-вывода относится к одной из самых трудоемких областей создания программного обеспечения. Здесь речь идет не об использовании операторов типа READ или WRITE в языках высокого уровня. Речь идет о необходимости создать подпрограмму в машинном виде, уже готовую к выполнению на компьютере, а не написанную с помощью некоторой системы программирования (систем программирования тогда еще не было), подпрограмму, вместо обычных вычислений управляющую тем устройством, которое должно участвовать в операциях ввода исходных данных или вывода результатов. При наличии такой подпрограммы программист может обращаться к ней столько раз, сколько операций ввода-вывода с этим устройством ему требуется. Для выполнения этой работы программисту недостаточно хорошо знать архитектуру вычислительного комплекса и уметь создавать программы на языке ассемблера. Он должен отлично знать и интерфейс, с помощью которого устройство подключено к центральной части компьютера, и алгоритм функционирования устройства управления устройства ввода-вывода. Очевидно, что имело смысл создать набор подпрограмм управления операциями ввода-вывода и использовать его в своих программах, чтобы не заставлять программистов каждый раз заново программировать все эти операции. С этого и началась история системного программного обеспечения. Впоследствии набор 14 подпрограмм ввода-вывода стали организовывать в виде специальной библиотеки ввода-вывода, а затем появились и сами операционные системы. Основной причиной их появления было желание автоматизировать процесс подготовки вычислительного комплекса к выполнению программы. В 50-е годы взаимодействие пользователей с вычислительным комплексом было совершенно иным, чем нынче. Программист-кодер (от англ. coder — кодировщик) — специально подготовленный специалист, знающий архитектуру компьютера и язык(и) программирования, — по заказу составлял текст программы, часто по уже готовому алгоритму, разработанному программистомалгоритмистом. Текст этой программы затем отдавался оператору, который набирал его на специальных устройствах и переносил на соответствующие носители. Чаще всего в качестве носителей использовались перфокарты или перфолента. Далее колода с перфокартами (перфолента) передавалась в вычислительный зал, где для вычислений по этой программе требовалось выполнить следующие действия: 1. Оператор вычислительного комплекса с пульта вводил в рабочие регистры центрального процессора и в оперативную память компьютера ту первоначальную программу, которая позволяла считать в память программу для трансляции исходных кодов и получения машинной (двоичной) программы (проще говоря, транслятор, который тоже хранился на перфокартах или перфоленте). 2. Транслятор считывал исходную программу, осуществлял лексический разбор исходного текста, и промежуточные результаты процесса трансляции зачастую так же выводили на перфокарты (перфоленту). Трансляция — сложный процесс, часто требующий нескольких проходов. Порой для выполнения очередного прохода приходилось в память компьютера загружать с перфокарт и следующую часть транслятора, и промежуточные результаты трансляции. Ведь результат трансляции выводился также на носители информации, поскольку объем оперативной памяти был небольшим, а задача трансляции — это очень сложная задача. 3. Оператор загружал в оперативную память компьютера полученные двоичные коды оттранслированной программы и подгружал двоичные коды тех системных подпрограмм, которые реализовывали управление операциями ввода-вывода. После этого 15 готовая программа, расположенная в памяти, могла сама считывать исходные данные и осуществлять необходимые вычисления. В случае обнаружения ошибок на одном из этих этапов или после анализа полученных результатов весь цикл необходимо было повторить. Для автоматизации труда программиста (кодера) стали разрабатывать специальные алгоритмические языки высокого уровня, а для автоматизации труда оператора вычислительного комплекса была разработана специальная управляющая программа, загрузив которую в память один раз оператор мог ее далее использовать неоднократно и более не обращаться к процедуре программирования ЭВМ через пульт оператора. Именно эту управляющую программу и стали называть операционной системой. Со временем на нее стали возлагать все больше и больше задач, она стала расти в объеме. Прежде всего разработчики стремились к тому, чтобы операционная система как можно более эффективно распределяла вычислительные ресурсы компьютера, ведь в 60-е годы операционные системы уже позволяли организовать параллельное выполнение нескольких программ. Помимо задач распределения ресурсов появились задачи обеспечения надежности вычислений. К началу 70-х годов диалоговый режим работы с компьютером стал преобладающим, и у операционных систем стремительно начали развиваться интерфейсные возможности. Напомним, что термином интерфейс (interface) обозначают целый комплекс спецификаций, определяющих конкретный способ взаимодействия пользователя с компьютером. Предшественником операционных систем следует считать служебные программы (загрузчики и мониторы), а также библиотеки часто используемых подпрограмм, начавшие разрабатываться с появлением универсальных компьютеров 1-го поколения (конец 1940-х годов). Служебные программы минимизировали физические манипуляции оператора с оборудованием, а библиотеки позволяли избежать многократного программирования одних и тех же действий (осуществления операций ввода-вывода, вычисления математических функций и т. п.). В 1950—1960-х годах сформировались и были реализованы основные идеи, определяющие функциональность ОС: пакетный режим, разделение времени и многозадачность, разделение полномочий, реальный масштаб времени, файловые структуры и файловые системы. Пакетный режим 16 Необходимость оптимального использования дорогостоящих вычислительных ресурсов привела к появлению концепции «пакетного режима» исполнения программ. Пакетный режим предполагает наличие очереди программ на исполнение, причём система может обеспечивать загрузку программы с внешних носителей данных в оперативную память, не дожидаясь завершения исполнения предыдущей программы, что позволяет избежать простоя процессора. Разделение времени и многозадачность Уже пакетный режим в своём развитом варианте требует разделения процессорного времени между выполнением нескольких программ. Необходимость в разделении времени (многозадачности, мультипрограммировании) проявилась ещё сильнее при распространении в качестве устройств ввода-вывода телетайпов (а позднее, терминалов с электронно-лучевыми дисплеями) (1960-е годы). Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором много ниже, чем скорость обработки этих данных компьютером, использование компьютера в «монопольном» режиме (с одним оператором) могло привести к простою дорогостоящих вычислительных ресурсов. Разделение времени позволило создать «многопользовательские» системы, в которых один (как правило) центральный процессор и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких как ввод или редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие как массивные вычисления) — в пакетном режиме. Разделение полномочий Распространение многопользовательских систем потребовало решения задачи разделения полномочий, позволяющей избежать возможности изменения исполняемой программы или данных одной программы в памяти компьютера другой программой (намеренно или по ошибке), а также изменения самой системы прикладной программой. Реализация разделения полномочий в операционных системах была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора — «реальным» (в котором исполняемой программе доступно всё адресное 17 пространство компьютера) и «защищённым» (в котором доступность адресного пространства ограничена диапазоном, выделенным при запуске программы на исполнение). Масштаб реального времени (Операционная система реального времени) Применение универсальных компьютеров для управления производственными процессами потребовало реализации «масштаба реального времени» («реального времени») — синхронизации исполнения программ с внешними физическими процессами. Включение функции масштаба реального времени позволило создавать решения, одновременно обслуживающие производственные процессы и решающие другие задачи (в пакетном режиме и/или в режиме разделения времени). Файловые системы и структуры Постепенная замена носителей с последовательным доступом (перфолент, перфокарт и магнитных лент) накопителями произвольного доступа (на магнитных дисках). Файловая система — способ хранения данных на внешних запоминающих устройствах. Компоненты операционных систем: ядро, загрузчик, интерпретатор команд, драйверы устройств, интерфейс, встроенное программное обеспечение. Загрузчик операционной системы — системное программное обеспечение, обеспечивающее загрузку операционной системы непосредственно после включения компьютера. Загрузчик операционной системы: - обеспечивает необходимые средства для диалога с пользователем компьютера (например, загрузчик позволяет выбрать операционную систему для загрузки); - приводит аппаратуру компьютера в состояние, необходимое для старта ядра операционной системы (например, на неx86 архитектурах перед запуском ядра загрузчик должен правильно настроить виртуальную память); - загружает ядро операционной системы в ОЗУ. Загрузка ядра операционной системы не обязательно происходит с жесткого диска. Загрузчик может получать ядро по сети. Ядро может храниться в ПЗУ или загружаться через последовательные интерфейсы (это 18 может пригодиться на ранней стадии отладки создаваемой компьютерной системы); - формирует параметры, передаваемые ядру операционной системы (например, ядру Linux передаются параметры, указывающие способ подключения корневой файловой системы); - передаёт управление ядру операционной системы. Ядро (kernel) — центральная часть операционной системы (ОС), обеспечивающая приложениям координированный доступ к ресурсам компьютера, таким как процессорное время, память, внешнее аппаратное обеспечение, внешнее устройство ввода и вывода информации. Также обычно ядро предоставляет сервисы файловой системы и сетевых протоколов. Как основополагающий элемент ОС, ядро представляет собой наиболее низкий уровень абстракции для доступа приложений к ресурсам системы, необходимым для их работы. Как правило, ядро предоставляет такой доступ исполняемым процессам соответствующих приложений за счёт использования механизмов межпроцессного взаимодействия и обращения приложений к системным вызовам ОС. Описанная задача может различаться в зависимости от типа архитектуры ядра и способа её реализации. Типы архитектур ядер операционных систем 1. Монолитное ядро предоставляет богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве. Это такая схема операционной системы, при которой все компоненты её ядра являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путём непосредственного вызова процедур. Монолитное ядро — старейший способ организации операционных систем. Примером систем с монолитным ядром является большинство UNIX-систем. Достоинства: Скорость работы, упрощённая разработка модулей. Недостатки: Поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы. Примеры: Традиционные ядра UNIX (такие как BSD), Linux; ядро MS-DOS, ядро KolibriOS. 19 Некоторые старые монолитные ядра, в особенности систем класса UNIX/Linux, требовали перекомпиляции при любом изменении состава оборудования. Большинство современных ядер позволяют во время работы подгружать модули, выполняющие часть функций ядра. В этом случае компоненты операционной системы являются не самостоятельными модулями, а составными частями одной большой программы, называемой монолитным ядром (monolithic kernel), которое представляет собой набор процедур, каждая из которых может вызвать каждую. Все процедуры работают в привилегированном режиме. 2. Модульное ядро — современная, усовершенствованная модификация архитектуры монолитных ядер операционных систем. В отличие от «классических» монолитных ядер, модульные ядра, как правило, не требуют полной перекомпиляции ядра при изменении состава аппаратного обеспечения компьютера. Вместо этого модульные ядра предоставляют тот или иной механизм подгрузки модулей ядра, поддерживающих то или иное аппаратное обеспечение (например, драйверов). При этом подгрузка модулей может быть как динамической (выполняемой «на лету», без перезагрузки ОС, в работающей системе), так и статической (выполняемой при перезагрузке ОС после переконфигурирования системы на загрузку тех или иных модулей). 3. Микроядро предоставляет только элементарные функции управления процессами и минимальный набор абстракций для работы с оборудованием. Большая часть работы осуществляется с помощью специальных пользовательских процессов, называемых сервисами. Решающим критерием «микроядерности» является размещение всех или почти всех драйверов и модулей в сервисных процессах, иногда с явной невозможностью загрузки любых модулей расширения в собственно микроядро, а также разработки таких расширений. Достоинства: Устойчивость к сбоям оборудования, ошибкам в компонентах системы. Основное достоинство микроядерной архитектуры — высокая степень модульности ядра операционной системы. Это существенно упрощает добавление в него новых компонентов. В микроядерной операционной системе можно, не прерывая её работы, загружать и выгружать новые драйверы, файловые системы и т. д. Существенно упрощается процесс отладки компонентов ядра, так как новая версия драйвера может загружаться без перезапуска всей операционной системы. Компоненты ядра 20 операционной системы ничем принципиально не отличаются от пользовательских программ, поэтому для их отладки можно применять обычные средства. Микроядерная архитектура повышает надежность системы, поскольку ошибка на уровне непривилегированной программы менее опасна, чем отказ на уровне режима ядра. Недостатки: Передача данных между процессами требует накладных расходов. Классические микроядра предоставляют лишь очень небольшой набор низкоуровневых примитивов, или системных вызовов, реализующих базовые сервисы операционной системы. Сервисные процессы (в принятой в семействе UNIX терминологии — «демоны») активно используются в самых различных ОС для задач типа запуска программ по расписанию (UNIX и Windows NT), ведения журналов событий (UNIX и Windows NT), централизованной проверки паролей и хранения пароля текущего интерактивного пользователя в специально ограниченной области памяти (Windows NT). Тем не менее, не следует считать ОС микроядерными только из-за использований такой архитектуры. Примеры: Symbian OS; Windows CE; OpenVMS; Mach, используемый в GNU/Hurd и Mac OS X; QNX; AIX; Minix; ChorusOS; AmigaOS; MorphOS. 4. Экзоядро — ядро операционной системы, предоставляющее лишь функции для взаимодействия между процессами, безопасного выделения и освобождения ресурсов. Предполагается, что API для прикладных программ будут предоставляться внешними по отношению к ядру библиотеками (откуда и название архитектуры). Возможность доступа к устройствам на уровне контроллеров позволит эффективней решать некоторые задачи, которые плохо вписываются в рамки универсальной ОС, например, реализация СУБД будет иметь доступ к диску на уровне секторов диска, а не файлов и кластеров, что положительно скажется на быстродействии. 5. Наноядро — архитектура ядра операционной системы, в рамках которой крайне упрощённое и минималистичное ядро выполняет лишь одну задачу — обработку аппаратных прерываний, генерируемых устройствами компьютера. После обработки прерываний от аппаратуры наноядро, в свою очередь, посылает 21 информацию о результатах обработки (например, полученные с клавиатуры символы) вышележащему программному обеспечению при помощи того же механизма прерываний. Примером является KeyKOS — самая первая ОС на наноядре. Первая версия вышла ещё в 1983-м году. 6. Гибридное ядро — это модифицированные микроядра, позволяющие для ускорения работы запускать «несущественные» части в пространстве ядра. Пример: ядра ОС Windows семейства NT. Комбинация разных подходов Все рассмотренные подходы к построению операционных систем имеют свои достоинства и недостатки. В большинстве случаев современные операционные системы используют различные комбинации этих подходов. Так, например, сейчас ядро «Linux» представляет собой монолитную систему с отдельными элементами модульного ядра. При компиляции ядра можно разрешить динамическую загрузку и выгрузку очень многих компонентов ядра — так называемых модулей. В момент загрузки модуля его код загружается на уровне системы и связывается с остальной частью ядра. Внутри модуля могут использоваться любые экспортируемые ядром функции. Существуют варианты ОС GNU, в которых вместо монолитного ядра применяется ядро Mach (такое же, как в Hurd), а поверх него крутятся в пользовательском пространстве те же самые процессы, которые при использовании Linux были бы частью ядра. Другим примером смешанного подхода может служить возможность запуска операционной системы с монолитным ядром под управлением микроядра. Так устроены 4.4BSD и MkLinux, основанные на микроядре Mach. Микроядро обеспечивает управление виртуальной памятью и работу низкоуровневых драйверов. Все остальные функции, в том числе взаимодействие с прикладными программами, осуществляются монолитным ядром. Данный подход сформировался в результате попыток использовать преимущества микроядерной архитектуры, сохраняя по возможности хорошо отлаженный код монолитного ядра. Смешанное ядро, в принципе, должно объединять преимущества монолитного ядра и микроядра: казалось бы, микроядро и монолитное ядро — крайности, а смешанное — золотая середина. В них возможно добавлять драйверы устройств двумя способами: и внутрь ядра, и в пользовательское пространство. Но на практике 22 концепция смешанного ядра часто подчёркивает не только достоинства, но и недостатки обоих типов ядер. Примеры: Windows NT, DragonFly BSD. Командный процессор оболочка операционной системы (от англ. shell «оболочка») — интерпретатор команд операционной системы, обеспечивающий интерфейс для взаимодействия пользователя с функциями системы. В общем случае, различают оболочки с двумя типами интерфейса для взаимодействия с пользователем: текстовый пользовательский интерфейс (TUI) и графический пользовательский интерфейс (GUI). Драйверы устройств (англ. driver) — компьютерная программа, с помощью которой другие программы (операционная система) получают доступ к аппаратному обеспечению некоторого устройства. Обычно с операционными системами поставляются драйверы для ключевых компонентов аппаратного обеспечения, без которых система не сможет работать. Однако для некоторых устройств (таких, как видеокарта или принтер) могут потребоваться специальные драйверы, обычно предоставляемые производителем устройства. В общем случае драйвер не обязан взаимодействовать с аппаратными устройствами, он может их только имитировать (например, драйвер принтера, который записывает вывод из программ в файл), предоставлять программные сервисы, не связанные с управлением устройствами (например,/dev/zero в Unix, который только выдаёт нулевые байты), либо не делать ничего (например, /dev/null в Unix и NUL в DOS/Windows). Встроенное программное обеспечение (англ. Firmware, fw) называется содержимое энергонезависимой памяти компьютера или любого цифрового вычислительного устройства — микрокалькулятора, сотового телефона, GPS-навигатора и т. д., в которой содержится его микропрограмма. Словом «прошивка» иногда называют образ ПЗУ, предназначенный для записи в память соответствующего устройства с целью обновления его микропрограммы, а также собственно процесс записи этого образа в энергонезависимую память устройства. Прошивка памяти осуществляется при изготовлении устройства различными способами — например, установкой микросхемы памяти с записанным содержимым («прошитой»). 23 Большинство устройств допускают замену содержимого памяти («перепрошивку»). Способы «перепрошивки» могут быть самыми различными — от физической замены микросхемы памяти до передачи данных по беспроводным каналам. СПИСОК РЕКОМЕНДОВАННОЙ ЛИТЕРАТУРЫ Основная литература 1. Олифер В. Г. Сетевые операционные системы: учебник для вузов / В. Г. Олифер В. Г., Н. А. Олифер. - Санкт-Петербург: Питер, 2002. - 544 с. 2. Олифер В. Г. Компьютерные сети. Принципы, технологии, протоколы: учебник для вузов / В. Г. Олифер, Н. А. Олифер - 2-е изд. - Санкт-Петербург: Питер, 2003. - 864 с. 3. Реляционные базы данных: учебное пособие / П. А. Осипов, А. Л. Карякин, М. Б. Носырев; Урал. гос. горный ун-т. – Екатеринбург: Изд-во УГГУ, 2016. – 83 с. Дополнительная литература 4. Гордеев А. В. Системное программное обеспечение: учебник для вузов / А. В. Гордеев А. В., А. Ю. Молчанов. - Санкт-Петербург: Питер, 2003. - 736 с. 5. Бройдо В. Л. Вычислительные системы, сети и телекоммуникации: учебное пособие для вузов / В. Л. Бройдо Санкт-Петербург : Питер, 2003. - 688 с. 24
«Операционные системы: общие сведения» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

Тебе могут подойти лекции

Смотреть все 493 лекции
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot