Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Функции операционных систем персональных компьютеров, история ЭВМ

Содержание:

Введение

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

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

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

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

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

Актуальность: операционные системы — это основной инструмент взаимодействия с компьютером. Знание о их функциях позволят улучшить эффективность работы, так же оно является основным и обязательным.

Основные положения: функции операционной системы — это основные критерии персональной значимости для пользователя всей операционной системы.

Что такое операционная система

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

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

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

Компьютеры начали существовать раньше, чем для них смогли создать операционные системы. Первые компьютеры были достаточно громоздки и общение с ними осуществлялось напрямую т.е. люди вводили необходимые комбинации двухзначного кода и ждали пока машина обработает его. Наличие подобной сложной системы поставило проблему упрощения общения между машиной и человеком. Это все больше актуализировало концепт создания универсального переводчика. В 50-60-ых годах начались усердные попытки создания первых операционных систем. Первым концептом стал Multics, который мог быть полностью доработан и выпущен, но этого не произошло. Концепт так и остался концептом.

Первой же рабочей операционной системой стала система UNIX. Данная операционная система основывалась на концепте Multics, а позже была перенесена на язык «С».

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

История ЭВМ

Так как операционные системы создавались в процессе конструирования компьютеров, мы рассмотрим поколения компьютеров начиная с машины Чарльза Бэббиджа.

Чарльз Бэббидж был английским математиком и большую часть своей жизни посвятил созданию аналитической машины. Хоть конструкция машины была полностью механической, Чарльз понимал, что она должна иметь программное обеспечение. Несмотря на то что машина так и не была сконструирована до конца, она имела свое программное обеспечение, точнее программа была написана Адой Лавлейс, когда её попросили перевести записи Менабреа на английский и сопроводить текст комментариями, я в одном из таких комментариев она описала алгоритм вычисления чисел Бернулли. Было признано, что это Первая программа, которая может быть реализована на компьютере.

Первое поколение: электронные лампы

Первое поколение компьютеров приходится на 1945 – 1955 года да. Первым действующим цифровым компьютером считалась конструкция, разработанная в университете штата Айова, Джоном Атанасовым и Клиффордом Берри. В ней использовалось 300 электронных ламп. Примерно в это же время в Берлине был построен компьютер «Z3» основанный на электромеханических реле.

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

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

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

Второе поколение: транзисторы и системы пакетной обработки

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

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

Для выполнения программы того времени программист должен был записать алгоритм на бумаге используя Фортран или ассемблер, после чего программа или же алгоритм переносились на перфокарты. Затем колода перфокарт передавалось одному из операторов в комнате вот это данных. Линия компьютером какого-либо задание оператор подходил к принтеру, открывал лист с полученными данными после чего относил его в комнату для распечаток, где программист мог его забрать.

Учитывая низкую продуктивность и высокую стоимость оборудования, люди вскоре занялись поиском способы повышения эффективности. Решением стала система пакетной обработки. Её замысел заключался в том, чтобы собрать полный поднос заданий в комнате входных данных и затем переписать их на магнитную ленту используя недорогой компьютер IBM 1401, однако он не подходил для числовых вычислений хоть и был хорош для считывания карт, копировании лент и печати выходных данных. Для вычислений же использовались такие дорогостоящие машины как IBM 7094.

4 второго поколения использовались в основном для технических учёных вычислений, часто встречающихся физики и инженерных задачах. Программы для них составлялись на языке фортран и ассемблере, а типичными операционными системами были FMS (Fortran Monitor System) и IBSYS (система, разработанная корпорацией IBM для компьютера IBM 7094).

Третье поколение: интегральные схемы

Развитие третьего поколения ЭВМ пришлось на 1965-1985 года.

Производители компьютеров того времени не имели два несовместимых друг с другом семейство это были: компьютеры С послойной обработкой данных такие как IBM 7094, использующийся для больших числовых расчетов науки и техники. С другой стороны, мы такие компьютеры как обе 1401 с посимвольной обработкой данных использовались в коммерческих целях банками и страховыми компаниями для сортировки и распечатки данных.

Для производителей поддержка и тех и других компьютеров была финансовая невыгодной. Помимо этого, покупатели компьютеров изначально брали небольшую машину, однако позже ее возможностей было недостаточно и требовался более мощный компьютер. Эту проблему попыталась решить фирма IBM выпустив программно-совместимые машины, в которых компьютеры варьировались от размеров IBM 1401, до машин, превосходящих IBM 7094.

Это было серия машин IBM System/360, данные семейства компьютеров стала первым стала первой серией, использующий малые интегральные схемы мы, что дало большое преимущество перед транзисторами.

Программное обеспечение всех компьютеров включая операционную систему OS/360, должна была идеально работать на всех машинах данной серии. К операционной системе предъявлялись противоречивые требования, при которых она должна была работать как в коммерческих, так и в научных областях, так же она должна была работать эффективно.

К в результате данные о с превысила по объему FMS на несколько порядков. Оно было написано на ассемблере тысячами программистов и содержала в себе где удивительно большое количество ошибок как. Однако несмотря на все ошибки и недостатки данная система отвечала запросам большинства клиентов. В тоже время появилось первая многозадачность, при которой работа машины IBM 7094 останавливалась в ожидании операции ввода-вывода на магнитную ленту.

Четвертое поколение: персональные компьютеры

Время ЭВМ четвертого поколения приходится с 1980 года по наши дни. Это уже привычные нам персональные компьютеры, которые были созданы с появлением больших интегральных схем тире это кремниевые микросхемы, которые содержат на одном квадратном сантиметре тысячи транзисторов.

В 1974 году корпорация Intel выпустила первый универсальный восьмиразрядный Центральный процессор - Intel 8080. Для тестирования новинки корпорация привлекла одного из своих консультантов Гэри Килделла который и создал операционную систему, названную CP/M.

В это же время начиная с 1980 года появились более привычный нам операционные системы. Компания IBM в то время обратилась к Биллу Гейтсу, чтобы получить лицензию интерпретатор языка бейсик. Также они искали операционную систему на IBM PC.

После повторного обращения компании к Биллу Гейтсу с просьбой обеспечить ее операционной системой Гейтс выяснил что есть подходящая операционная система DOS. Он отправился в компанию изготовители данной системы и выкупил данную систему после чего создал пакет программ DOS/BASIC этот пакет был выкуплен компании IBM. После привлечения Тима Патерсона, человека, написавшего DOS и ставшего первым служащим Microsoft, видоизмененная система было переименовано в MS-DOS, после чего быстро заняла доминирующее положение на рынке.

Аппаратное обеспечение персонального компьютера

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

В состав ПК, как правило, входят: процессор, устройства ввода-вывода, память и шины, посредством которых устройства соединены и работают друг с другом.

Процессоры.

Процессор – это устройство, исполняющее машинный инструкции, являющиеся кодом программы. Его называют «мозгом» компьютера. Его работа заключается в выборе команды, ее последующему декодированию и выполнению, данные процедуры совершаются вплоть до тех пор, пока выполняемая программа не закончится.

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

Современные процессоры работают как правило в двух режимах: пользовательском режиме и режиме ядра. Эту тему мы раскроем далее.

Память.

Память в свою очередь делится на ОЗУ (Оперативное запоминающее устройство) и ПЗУ (Постоянное запоминающее устройство).

Требования, предъявляемые к памяти: быстродействие, большой объем. Память должна быть быстрой для того, чтобы комфортно взаимодействовать с процессором и не тормозить его работу.

Следует отметить, что память имеет свою структуру иерархии, предоставленной на картинке ниже:

Структура иерархии памяти

Останавливаться на каждом из пунктов мы не будем, для пользователей самыми знакомыми являются ОЗУ (основная память) и магнитные диски.

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

Однако для хранения больших объемов памяти, используются магнитные, или жесткие диски. Они превосходят ОЗУ по своему объему и уступают ей в стоимости. Такие диски состоят из металлических пластин, вращающихся со скоростью 5400, 7200, 10 800 и более оборотов в минуту.

Упрощенная схема жесткого диска.

Устройства ввода-вывода.

Устройства ввода и вывода играют большую роль во взаимодействии с компьютером.

Типичные устройства ввода, привычные нам, это: клавиатура, мышь, сканер. Устройства вывода, это: монитор, колонки, принтер.

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

Шины.

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

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

Материнская плата содержит в себе первую программу, начинающую функционировать при запуске – BIOS (Basic Input Output System). Эта программа содержит в себе низкоуровневое программное обеспечение, работающее с вводом и выводом, и способна считывать информацию, вводимую с клавиатуры и выводить ее на экран.

BIOS проверяет аппаратное обеспечение на готовность к работе, после чего запускается операционная система.

Виды операционных систем

Операционные системы мейнфреймов

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

  • пакетная обработка,
  • обработка транзакций
  • работа в режиме разделение времени.

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

Обработка транзакций производится с меньшими запросами, однако их количество превышает пакетную обработку. Примеры: банковские чеки или бронирование авиабилетов.

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

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

Такие операционные системы зачастую представлены рабочими станциями, способными обрабатывать запросы множества пользователей единовременно. Они могут предоставлять пользователям доступ к аппаратным и программным ресурсам сервера и выполнять такие услуги как: печать, хранение файлов или веб-служб. Их типичные представители: Solaris, FreeBSD, Linux и Windows Server 201x.

Многопроцессорные операционные системы

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

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

Операционные системы персональных компьютеров

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

Представители данных ОС в представлении не нуждаются, это Windows 8, Windows 10, Linux и macOS компании Apple.

Операционные системы карманных персональных компьютеров

КПК изначально представляли собой компьютер, работающий находясь в руке человека. Самые популярные представители устройств, с данной ОС – смартфоны и планшеты, встречающиеся повсеместно. Доминирующими на рынке, представителями данных ОС являются – Android от компании Goole и IOS от Apple.

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

Встроенные системы используются в технике, не предусматривающей какое-либо стороннее программное обеспечение. К примеру холодильники, микроволновые печи, телевизоры и прочая техника, не имеющая на первый взгляд операционной системы, но работающая по определенной, заданной ей программе. Представители таких систем: Embedded Linux, QNX и VxWorks.

Операционные системы реального времени

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

Операционные системы смарт-карт

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

Основные функции операционной системы

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

Краткий обзор основных функций

Функционал, который выполняет ОС достаточно велик. Если выделить основные функции операционной системы, то мы получим следующие пункты:

  • Прием заданий или команд от пользователя, и их дальнейшая обработка
  • Перевод (загрузка) запущенного приложения в оперативную память
  • Организация виртуальной памяти и ее распределение
  • Запуск программы (передача ей полномочий, после чего процессор начинает ее выполнять)
  • Идентификация всех программ и данных
  • Прием и исполнение различных запросов от выполняющихся приложений
  • Обслуживание всех операций ввода-вывода
  • Обеспечение работы систем управлений файлами (СУФ) и/или систем управления базами данных (СУБД)
  • Организация параллелизма (обеспечение режима мультипрограммирования)
  • Организация механизмов обмена сообщениями и данными между выполняющимися программами.
  • Для сетевых операционных систем характерной является функция обеспечения взаимодействия связанных между собой компьютеров.
  • Защита одной программы от влияния другой, обеспечение сохранности данных, защита самой операционной системы от исполняющихся на компьютере приложений.
  • Аутентификация и авторизация пользователей
  • Удовлетворение жестким ограничениям на время ответа в режиме реального времени (характерно для операционных систем реального времени)
  • Обеспечение работы систем программирования, с помощью которых пользователи готовят свои программы
  • Предоставление услуг на случай частичного сбоя системы

Процессы и потоки

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

Для обеспечения процессоров такой функцией некоего параллелизма как раз и существуют процессы. Точнее процессы и потоки.

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

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

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

Управление памятью

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

По этому принципу работает иерархия памяти. В операционной системе, иерархией памяти занимается менеджер или диспетчер памяти.

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

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

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

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

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

Битовые матрицы в свою очередь являются более простым решением. Они работают просто, их распределение памяти можно описать так: есть некие единичные блоки, содержащие в себе несколько килобайт памяти. Свободный блок памяти, как правило имеет значение – 0, занятый – 1.

Следует добавить, что память, состоящая из 32n бит, будет использовать n бит матрицы.

Часть памяти с пятью процессами и тремя свободными пространствами, единичные блоки памяти разделены вертикальными штрихами: а — заштрихованные области (которым соответствует 0 в битовой матрице) являются свободными; б — соответствующая битовая матрица; в — та же самая информация в виде списка.

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

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

  • первое подходящее;
  • следующее подходящее;
  • наиболее подходящее;
  • наименее подходящее.

Четыре комбинации соседей для завершающегося процесса X.

Когда процессы и пустые пространства содержатся в списке отсортированными по адресам, то для выделения памяти создаваемому процессу (или существующему процессу, загружаемому в результате свопинга с диска) могут быть использованы перечисленные выше алгоритмы.

Файловые системы

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

Каждый файл имеет свое имя. Это имя обычно может состоять из букв и цифр иногда даже допускаются символы, к примеру: «книги», «музыка21» «Мстители-Финал».

Однако стоит отметить, что к примеру в Windows, для именования файлов запрещены следующие символы: \ / : * ? “ < > |. Эти символы запрещены потому что они считаются служебными и могут сбить программное обеспечение с толку.

Так же каждый файл имеет свой тип, или расширение. Вот некоторые из них:

Расширение

Значение

.bak

Резервная копия файла

.c

Исходный текст программы на языке C

.gif

Изображение формата GIF

.hlp

Файл справки

.html

Документ в формате HTML

.jpg

Статическое растровое изображение в формате JPEG

.mp3

Музыка в аудиоформате MPEG layer 3

.mpg

Фильм в формате MPEG

.o

Объектный файл

.pdf

Документ формата PDF

.ps

Документ формата PostScript

.tex

Входной файл для программы форматирования TEX

.txt

Обычный текстовый файл

.zip

Архив, сжатый программой zip

Для управления файлами создаются соответствующие файловые системы. Программное обеспечение, отвечающее за управление файловой системой, называется «системой управления файлами».

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

Такая система не является самостоятельным программным обеспечением, а разрабатывается в соответствии с оперционной системой, в которой она состоит. Одна из наиболее известных таких систем – FAT.

Файловая система FAT (File Allocation Table — таблица размещения файлов) получила свое название благодаря простой таблице, в которой указываются:

  • непосредственно адресуемые участки логического диска, отведенные для размещения в них файлов или их фрагментов;
  • свободные области дискового пространства;
  • дефектные области диска (эти области содержат дефектные участки и не гарантируют чтение и запись данных без ошибок).

Ввод-вывод информации

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

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

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

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

Существуют два способа работы устройств ввода-вывода – синхронный и асинхронный.

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

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

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

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

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

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

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

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

Среди множества принципов построения операционных систем перечислим несколько наиболее важных:

  • Принцип модульности
  • Принцип визуализации
  • Принцип мобильности
  • Принцип совместимости
  • Принцип генерируемости
  • Принцип открытости
  • Принцип обеспечения безопасности вычислений

Принцип модульности – операционная система состоит из взаимозаменяемых модулей. Каждый модуль, при повреждении может быть заменен без ущерба общей конфигурации. Возможности взаимодополняемости модулей расширяют возможности операционной системы и возможности ее настройки.
Принцип визуализации – принцип обобщения всех ресурсов посредством абстрактных визуальных форм. Данный принцип значительно упрощает взаимодействие и управление ресурсами оперативной системы. Ресурсы обобщаются по наличию у них единых свойств и группируются. Естественно все это сопровождается непосредственной визуализацией. Важную часть в данном принципе играет независимость программ от внешних устройств. Внешние устройства при подключении не меняют визуальную составляющую, а лишь адаптируют свою визуализацию под критерии устройства к которому подключены.
Принцип мобильности – подразумевает простоту переноса операционной системы на иную аппаратную платформу. Подобные системы должен поддерживать большое количество языков программирования, в том числе и высокоуровневые. Перенос целиком операционной системы весьма сложное занятие. В большинстве случаев принципу мобильности подчиняются основные модули, остальные же просто переписываются заново при переносе. Но это все равно значительно облегчает перенос как в физических затратах, так и хронологических. Чем более уникальна операционная система, тем более затратнее ее перенос на другие платформы. В текущий момент популярность набирает кроссплатформенность. Это задает тенденцию к созданию не уникальных операционных систем, а универсальных, способных к быстрому переносу на любую платформу при минимальных тратах.
Принцип открытости – данный принцип выражает идею доступности к изменениям внутри структуры операционной системы. Если более подробно, что принцип говорит о том, что вы сможете напрямую менять модули операционной системы как пользователь и как системный администратор. Наиболее популярные открытые операционные системы UNIX и Lunix. Как известно сам пользователь создает эту операционную систему под себя, открыто модернизируя ее и полностью имеющий доступ к внутреннему содержанию открытой операционной системы. Подобные тенденции наблюдаются сегодня. Уровень образования растет, следственно растет и компьютерная грамотность населения. Процент пользователей одобряющий и пользующийся открытыми операционными системами относительно мал в текущий момент, но динамика его роста положительна.
Принцип генерации – представление о центральной архитектуре должно обеспечивать возможность настройки операционной системы. Само себе понятия «пространственная генерация» тесно связано с локализующими параметрами пространственного расположения модулей. Доступность модульного расположения и знание принципов функционирования позволяет прогнозировать примерный продукт генерации, т.е. соответствовать принципу генерации оперативной системы. Для чего необходим подобный механизм было сказано ранее, но хочется заметить и отметить данную каузальную связь между возможностью тонкой настройки и архитектурными особенностями систем. Так же это повторно отображает актуальность и необходимость получения комплексного понимания о операционных системах для дальнейшего успешного применения в деятельности.
Так же очень важным параметром для любой операционной системы является обеспечение безопасности вычислений проводимых компьютером. И дело идет не только о конфиденциальности вычислительных результатов для иных пользователей, сколько о модульной защите самого компьютера от своих же операций. Пренебрежение данным правилом грозит неравномерным распределением ресурсов компьютера, что ведет не к самым благоприятным последствиям как на продукт решения, так и на техническое состояние внутренней архитектуры.
Для защиты компьютера от посягательств внешних пользователей используется система учетных записей. Учетная запись – комплекс механизмов, контролирующих доступ пользователя к информации содержащихся на компьютере, а так-же файлам самого компьютера, так же разграничивающий права пользователей, в соответствии с которым лишь определенные пользователи имеют право определенно взаимодействовать с компьютером (примером данного является разграничение пользовательской учебной записи и учетная запись администратора компьютера). Учетные записи могут представлять наглядный пример право распределения внутри операционной системы для регулирования и внутренних ресурсов. Только в данном случае подобной записью являются процессы, проходящие в архитектуре. Их взаимоисключающая природа позволяет сохранять баланс распределения ресурсов.

Макроядерные операционные системы

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

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

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

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

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

Структурированная модель монолитной системы

Микроядерные операционные системы

Микроядерная модель операционной системы отлично сочетает в себе принципы мобильности, совместимости и обеспечения безопасности.

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

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

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

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

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

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

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

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

Ниже представлена графическая модель этих уровней, продемонстрированная на примере системы MINIX 3.

Упрощенная структура системы MINIX 3.

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

  • управление виртуальной памятью;
  • поддержка заданий и потоков;
  • взаимодействие между процессами (Inter-Process Communication, IPC);
  • управление поддержкой ввода-вывода и прерываниями;
  • сервисы хоста 1 и процессора.

Требования к операционным системам

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

От систем реального времени (СРВ), как известно, требуется быстрый отклик, на внешнее воздействие. Для этого система должна отвечать минимум двум требованиям.

  • Ограничение времени отклика. Определяется предустановленный крайний срок времени, за который система должна отреагировать на воздействие, непосредственно после какого-либо события. Отсутствие подобного ограничения рассматривается как недостаток программного обеспечения.
  • Одновременность обработки. Параллелизм или же многозадачность так же важна. Даже при нескольких запущенных процессов или программ, все временные ограничения процессов должны быть выдержаны.

СРВ используются сегодня во многих отраслях, таких как промышленность, медицина, робототехника, телекоммуникационное оборудование или бытовая техника. Примерами могут послужить: лазерные принтеры, сканеры, цифровые камеры, кабельные модемы, маршрутизаторы, системы для видеоконференций и Интернет-телефонии, мобильные телефоны, микроволновые печи, музыкальные центры, кондиционеры, системы безопасности.

Иногда СРВ делят на «жесткие» и «мягкие». Их различия заключаются в требованиях к системе. Так в «жесткой» системе, нарушение временного ограничения недопустимо. Тогда как в «мягкой» системе, такое нарушение лишь нежелательно. Однако здесь можно сказать, что не всякие мягкие СРВ вовсе таковыми являются, ведь они не соответствуют первому требованию – четкому ограничению времени.

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

Требования к операционной системе реального времени следующие:

  • Мультипрограммность и мультизадачность
  • Приоритеты задач
  • Наследование приоритетов
  • Синхронизация процессов и задач
  • Предсказуемость

Первое требование – мультипрограмность и мультизадачность. Оно говорит нам о том, что система должна быть многопоточной, а также активно использовать прерывания и диспетчеризацию. Такая мультизадачность повышает производительность ОСРВ, хоть речь идет не столько о скорости системы, сколько о ее способности выдержать ограничение времени, что дает ей большую предсказуемость и говорит о ее соответствии требованиям приложения. К примеру система Windows 3.11 даже на Pentium IV с частотой более 3000 МГц не может функционировать в качестве ОСРВ, ибо одно приложение может практически монопольно захватить центральный процессор и заблокировать систему для остальных вычислений.

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

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

Для решения проблемы, было создано наследование приоритетов. При наследовании, уровень приоритета потока приравнивается к уровню самого потока. В следствии чего, блокирующий ресурс поток, наследует уровень блокируемого потока.

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

Пятое требование – предсказуемость. Предсказуемость ОСРВ используется для того чтобы предотвратить ухудшение качества в мультимедийных системах. Таким образом разработчик при создании ОСРВ учитывает многие факторы, в частности времена выполнения системных вызовов и временные характеристики поведения системы в различных обстоятельствах.

Интерфейсы операционных систем

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

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

Управление процессами

Управление памятью

Управление вводом-выводом.

Запуск, приостановка и снятие задачи;

Запрос на выделение блока памяти;

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

Задача или изменение приоритета задачи;

Освобождение памяти;

Вызов задач между собой;

Изменение параметров блока памяти;

Файловые операции (запросы на создание, изменение и удаление данных, организованных в файлы).

Вызов удаленных процедур.

Отображение файлов на память;

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

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

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

Для начал стоит разграничить API на несколько направлений:

  • API как высокоуровневый интерфейс (библиотеки RTX);
  • API системных и прикладных программ, входящие в поставку операционной системы;
  • Прочие API.

Краткий обзор современных операционных систем

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

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

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

Свободное программное обеспечение этой системы привлекает энтузиастов и на сегодняшний день, многие проекты, основанные на ядре Linux, получают всё большую популярность. Примерами являются такие проекты как Linux Mint, Ubuntu, Fedora.

Linux работает на множестве процессоров различных архитектур, таких как  ARMAlpha AXPSPARCMotorola 680x0SuperHIBM System/390MIPSPA-RISC Renesas H8/300, и многих других.

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

Как и в классических системах UNIX, Linux содержит макроядро.

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

Операционные системы Windows

В 1990 году компания Microsoft объявила начале работ над концептуально новой операционной системой, которая разрабатывалась для компьютеров IBM-PC, и должна была иметь среди характеристик следующее:

  • Микроядерная архитектура
  • Независимость устройств (что обеспечивало хорошую переносимость)
  • Возможность запускать приложения, созданные для других операционных систем
  • Надежная защита от несанкционированного доступа
  • Возможность работы с несколькими файловыми системами

Изначально проект имел название «OS/2 version 3.0», однако в 1993 году он вышел под названием «Windows NT». Существенного прорыва правда это не оказало. Система уступала OS/2 в быстродействии, файловая система FAT не имела возможности присваивания длинных имен файлам.

Потому компания выпускала обновленные версии, надеясь догнать по производительности своих конкурентов. Windows NT 4.0 в этом плане оказалась весьма успешной, однако операционная система требовала большой оперативной памяти.

Существенное развитие NT продолжила Windows 2000. Она имела улучшенное питание, улучшенный интерфейс и добавилась технология Plug-and-Play службы сетевого каталога.

После успеха Windows 2000, компания Microsoft продолжили делать упор на совместимость драйверов и устройств, а также на улучшение интерфейса. Таким образом появилась Windows XP, вытеснив с рынка Windows 98.

Стратегия оказалась успешной, и Windows XP за первые несколько лет своего существования была инсталлирована на сотни тысячах персональных компьютеров.

Разработка Windows Vista стартовала через несколько лет после успеха Windows XP. Однако охват планов был слишком большим, потому разработку пришлось прекратить и начать заново, несколько урезав ее будущий функционал. Объем готового продукта поразил, 70миллионов строк кода, написанного на языках C/C++. Компания стремилась расширить функционал, потому в главном каталоге system32, оказалось 1600 динамически подключаемых библиотек (DLL) и 400 исполняемых файлов (EXE).

Однако в то время стали выпускаться ноутбуки с более простой сборкой и слабыми процессорами, потому такая высокая производительность системы не произвела впечатления, куда более производительной в таких условиях оказалась Windows XP. В «Windows 7» были учтены все недостатки прошлой системы, проводились многие тестирования, повысилась производительность и вскоре Windows 7 полностью вытеснила Vista.

Библиография

Богимирский Б. С. Руководство пользователя ПЭВМ: В 2 ч. — СПб.: Ассоциация OILCO, 1992. 357с.

Гордеев А. В., Молчанов А. Ю. Системное программное обеспечение: Учебник. — СПб.: Питер, 2002. 736 с.

Гордеев А. В., Никитин А. В., Фильчаков В. В. Организация пакетов прикладных программ: Учеб. пособие. Л.: ЛИАП, 1988. 78 с.

Гордеев А.В. Операционные системы Учебник для вузов. 2-е изд. — СПб.: Питер, 2004. — 416 с.: ил.

Дейтел Г. Введение в операционные системы: В 2 т. / Пер. с англ. Л. А. Теплицкого, А. Б. Ходулева, В. С. Штаркмана; Под ред. В. С. Штаркмана. — М.: Мир, 1987.

Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT / Пер. с англ. — Н. В. Гайркого.: Финансы и статистика, 1991. 544 с.

Карпов В.Е., Коньков К.А. Введение в операционные системы. Курс лекций. 2- е изд. – М.: ИНТУИТ.РУ, 2005.

Кастер X. Основы Windows NT и NTFS / Пер. с англ. — М: Изд. отдел «Русская редакция» ТОО «Channel Trading Ltd.», 1996. 440 с.

Олифер В. Г., Олифер Н. А. Сетевые операционные системы.:Учебник. — СПб.: Питер, 2001. 544 с.

Рихтер Дж. Windows для профессионалов (Создание эффективных Win32- приложений с учетом специфики 64-разрядной версии Windows). 4-е изд. – М.: Русская Редакция; пер. с англ. – СПб.: Питер, 2001.

Таненбаум Э., Бос Х. Современные операционные системы. 4-е изд. — СПб.: Питер, 2015. — 1120 с.

Цикритзис Д., Бернстайн Ф. Операционные системы / Пер. с англ. В. Л. Ушковой и Н. Б. Фейгельсон. — М.: Мир, 1977. 336 с.