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

Функции операционных систем персональных компьютеров. Характеристика ОС.

Содержание:

ВВЕДЕНИЕ

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

Цель курсовой работы – определить наиболее важные функции операционной системы.

Задачи работы:

- ознакомится с литературой по операционным системам, и найти наиболее удачное изложение этой темы;

- ознакомится с содержанием книг и статей и выбрать темы для более глубокого изучения;

- изучить выбранные темы;

- составить собственное представление о предмете;

- изложить такое представление в отчете.

ГЛАВА 1. ОПЕРАЦИОННЫЕ СИСТЕМЫ ПК

1.1 Краткая характеристика ОС

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

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

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

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

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

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

Джон Бакус впервые описал эту концепцию на заседании Массачусетского технологического института в 1954 году, а затем в начале 1957 года Боб Бамарв опубликовал описывающую эту концепцию статью «How to consider a computer». Джон Маккэрти начал первый проект реализации такой системы во второй половине 1957 года, используя IBM 704, а затем на модифицированном IBM 7090. Один из результатов был назван «Compatible Time-Sharing» (CTSS) и была показан в 1961 году. CTSS использовалась до 1973 года. Еще одним примером, впервые продемонстрировавшим систему временного разделения, была система PLATO II, созданная Дональдом Блитцером, которая была продемонстрирована в Университете Иллинойса в 1961 году. Первой успешной коммерческой системой разделения времени была система разделения времени Dartmouth Time Sharing System.

В 60-х - 80-х годах технологическая основа перешла от одиночных полупроводниковых компонентов к интегральной микросхеме, что предоставило большие возможности для нового поколения компьютеров. Появился ряд программно-совместимых вычислительных машин. Первыми программно-совместимыми машинами, основанными на интегральных схемах, были машины серии IBM / 360.

В 60-х - 70-х годах компьютерные терминалы подключались к крупным мэйнфреймам (центральным компьютерным системам). Во многих приложениях мэйнфреймы постоянно обращаются к терминалам с запросом о необходимости рабочих данных. В последствии вместо запросов к терминалам использовались прерывания и технологии параллельной передачи данных, такие как стандарт IEEE 488. Обычно компьютерные терминалы располагались в университетах и использовались в качестве персональных компьютеров. В начале периода многие компьютеры фактически использовались в качестве терминалов для систем с временным разделением.

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

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

Операционная система — это комплекс взаимосвязанных программ, предназначенных для организации и управления компьютерными ресурсами [7]. Операционную систему можно разделить на наиболее важные части: ядро, систему хранения данных и интерпретатор команд [6], рис. 1.

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

Работа с файлами и каталогами

Управление устройствами компьютера

Интерфейс

Рисунок 1 – Операционная система

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

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

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

Процессор

Периферия

Память

Дисплей

Утилиты

Shell

Интерфейс

Программы

Shell

Рисунок 2 – Ядро ОС

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

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

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

Файловая система может использоваться на многих различных типах устройств хранения, использующих разные типы носителей: жесткие диски, SSD, лента и оптические диски. В некоторых случаях, таких как tmpfs, основная память компьютера (оперативная память, RAM) используется для создания временной файловой системы для краткосрочного использования.

Интерпретатор команд (Interpreter) — это программа, которая использует компьютер для организации работы пользователя.

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

Функции, которые считались частью операционной системы, определялись по-разному в разных операционных системах. Microsoft Windows считает свое пользовательское программное обеспечение частью операционной системы, в то время как многие версии GNU/Linux - нет.

Операционные системы делятся на множество типов в зависимости от аппарата учета, лицензии и цели управления, рис. 3 [8]. Каждый тип разделен на подтипы. Однозадачная система может запускать только одну программу в момент времени, а многозадачная система позволяет запускать более одной программы одновременно. Создается впечатление, что программы работают одновременно, хотя на самом деле они находятся в активной очереди, время предоставления ресурсов компьютера распределяется между программами, однако для пользователя такой подход создает впечатление одновременной работы программ. Многозадачный механизм можно охарактеризовать определенными типами сотрудничества. В предопределенной многозадачности ОС берет процессорное время и выделяет этот квант времени каждой из программ. Операционные системы, такие как UNIX, такие как Solaris, Linux, AmigaOS, поддерживают предопределенную многозадачность [7]. В совместной многозадачности программы определенным образом распределяют время друг для друга. В 16-битных версиях Microsoft Windows использовалась совместная многозадачность, а в 32-битных версиях Windows NT и Win9x использовалась предопределенная многозадачность [7].

Рисунок 3 – Классификация ОС

ОС различаются по следующим особенностям:

- Параллельное и псевдопараллельное управление задачами (многозадачное управление);

- Межпроцессное взаимодействие: обмен данными, синхронизация;

- Системное оборудование;

- Использование информации и программ;

- Защита прав пользователей и многопользовательский режим работы (аутентификация, авторизация).

Структура типовой ОС [4] показана на рис. 4

Прикладное ПО

Интерфейс системных вызовов

Система в/в

Драйверы

Аппаратное обеспечение

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

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

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

Рисунок 4 – Структура ОС.

1.2. Популярные ОС для ПК

Для персональных компьютеров доступны три типа операционных систем: операционные системы Microsoft Windows, GNU/Linux и macOS (включая Macintosh) [2, 9].

Ведущей операционной системой является Microsoft Windows, которую используют 88% от общего числа пользователей (https://ru.wikipedia.org/wiki/Windows) [7]. На втором месте производственная macOS (13,23%) [7], а Linux во всех версиях вместе взятых использует 1,57% [7].

Рисунок 5 – Логотип Windows

Microsoft Windows — это семейство проприетарных операционных систем Microsoft Corporation, в первую очередь предназначенных для компьютеров на базе архитектуры Intel, рис. 6 [10]. По оценкам, удобство работы с компьютерами, подключенными к Интернету, составляет 88,9% [7]. Последняя версия - Windows 10. Первый выпуск Microsoft Windows был в 1985 году. Windows 95 была выпущена в 1995 году с использованием только MS-DOS в качестве начальной загрузки [7].

После своего появления Microsoft Windows обогнала операционную систему MacOS, представленную в 1984 году, и заняла более 90% мирового компьютерного рынка. В данное время Windows по-прежнему остается самой популярной операционной системой на ПК. Однако в 2014 году Microsoft признала, что из-за значительного увеличения продаж смартфонов Android она потеряла большую часть всего рынка операционных систем. В 2014 году количество проданных устройств Windows составило менее 25% от продаж устройств Android. Однако, поскольку две операционные системы обычно ориентированы на разные платформы, это сравнение может быть не совсем актуальным. Так же, данные по серверам Windows показывают, что доля рынка соответствует трети конечных пользователей.

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

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

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

Windows: операционная система для ПК, планшетов и обычных смартфонов. Последняя версия - Windows 10. Основными конкурентами в семействе являются MacOS от Apple для ПК и Android для мобильных устройств.

Windows Server: операционная система серверного компьютера. Последняя версия - Windows Server 2019. По сравнению с продуктами пользовательского уровня, используется сильная схему именования. Главный конкурент этого семейства - Linux.

Windows PE: облегченная версия Windows, предназначенная для использования в качестве операционной системы реального времени для установки Windows на «голое железо» (особенно на нескольких компьютерах одновременно) для восстановления или устранения неполадок. Последняя версия - Windows PE 10.

Windows IoT (ранее Windows Embedded): Microsoft изначально разработала Windows CE как операционную систему общего назначения для любого устройства небольшими ресурсами, чтобы его можно было назвать «полноценным компьютером». В итоге Windows CE была окончательно изменена на Windows Embedded Compact и включена под брендом Windows Compact, который также включает Windows Embedded Industry, Windows Embedded Professional, Windows Embedded Standard, Windows Embedded Handbed и Windows Embedded Automotive.

Следующие семейства Windows больше не разрабатываются:

Windows 9x: операционная система для рыночных потребителей. Производство прекращено из-за низкой производительности. Microsoft теперь обслуживает потребительский рынок, используя Windows NT.

Windows Mobile: предшественник Windows Phone, это операционная система для мобильных телефонов. Первая версия имела название Pocket PC 2000. Третья версия - Windows Mobile 2003, которая является первой системой, использующей бренд Windows Mobile. Последняя версия - Windows Mobile 6.5.

Windows Phone: операционная система, продаваемая только производителям смартфонов. Первой версией была Windows Phone 7, за ней последовали Windows Phone 8 и Windows Phone 8.1. В следующей версии название изменилось на Windows 10 Mobile. В данный момент, такая версия больше не выпускается.

Служебные процессы

Приложения win32

Интерфейс системных вызовов (сервисов)

Исполнительная система

Ядро

Драйверы

Аппаратное обеспечение

Рисунок 6 – Архитектура Windows

Операционные системы Windows Server широко используются в корпоративной среде. В последние годы Microsoft увеличила вложения в использование Windows в качестве серверной операционной системы. Однако удобство использования Windows на серверах не так велико, как на ПК, поскольку она конкурирует с GNU/Linux и UNIX-ситемами на рынке серверов.

ReactOS — это альтернатива операционной системе Windows, разработанная по принципам Windows, без использования кода Microsoft.

ReactOS — это свободная операционная система с открытым исходным кодом, написанная с нуля. Ее дизайн основан на Windows, точно так же, как Linux основан на UNIX, но ReactOS — это не Linux. ReactOS выглядит и ощущается так же, как Windows, может запускать программное обеспечение Windows и драйверы Windows и знакома пользователям Windows.

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

Рисунок 7 – Логотип Linux

Ядро Linux было создано в 1991 году Линусом Торвальдсом, во время учебы в университете в Финляндии. Архитектура представлена на рис. 8 [10]. Торвальдс разместил информацию о своем проекте в группе студентов ИТ-программистов и получил необходимую поддержку и помощь от волонтеров, которым удалось создать полное и функциональное ядро.

Пользовательские приложения

Библиотека GNU

Интерфейс системных вызовов

Ядро

Архитектурно-зависимый код ядра

Аппаратная платформа

Рисунок 8 – Архитектура Linux

Linux похож на UNIX, но был разработан без кода UNIX. Благодаря своей открытой структуре, режим ядра Linux был доступен студентам для изменений, в результате чего, ядро получило широкое распространение - от суперкомпьютеров до умных часов. Хотя оценки показывают, что Linux используется на 1,82% всех настольных компьютеров [7], он широко применяется на серверах и во встроенных системах, таких как мобильные телефоны. Linux распространил UNIX на многие платформы; он используется на многих суперкомпьютерах, включая все из списка TOP500, по состоянию на 2020 год. Linux ядро используют ОС Debian, Ubuntu, Linux Mint, Chrome OS и прочие [7].

Необходимо отметить важные хронологические этапы развития ядра Linux и показать увеличение объёма исходного кода:

17 сентября 1991: Linux версии 0.01 (10 239 строк кода).

14 марта 1994: Linux версии 1.0.0 (176 250 строк кода).

9 июня 1996: Linux версии 2.0.0 (777 956 строк кода).

22 июля 2011: релиз Linux 3.0 (14,6 млн строк кода).

23 февраля 2015: первый релиз-кандидат Linux 4.0 (более 19 млн строк кода).

7 января 2019: первый релиз-кандидат Linux 5.0 (более 26 млн строк кода).

Ядро Linux распространяется на условиях лицензии GNU General Public License, то есть свободно. Эту лицензию выбрал Линус Торвальдс практически сразу после того, как стало понятно, что его хобби начало получать распространение по всему миру. Владельцем торговой марки Linux является Линус, а помогает следить за соблюдением его прав и условий GPL Фонд свободного программного обеспечения.

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

Уменьшение вклада неоплачиваемых разработчиков в развитие ядра. За этот период их доля уменьшилась с 14,6% до 7,7%. Так произошло по причине того, что многие из этих разработчиков наняты компаниями.

Взносы компаний. В этот период доля Intel составляли 12,9%, Red Hat -8%, Linero - 4%, Samsung - 3,9%, SuSE - 3,2% и IBM - 2,7%. Но несколько лет назад ситуация с участием крупных ИТ компаний сильно отличалась. В 2010 году первое место занимали Red Hat (10,2%), Intel (8,8%), Texas Instruments (4,1%), Linaro (4,1%), SuSE (3,5%), IBM (3,1%). Доля ведущего разработчика процессоров Intel значительно выросла, и компания отмечает, что ядро Linux имеет большое стратегическое значение для компании. Таким образом видна поддержка ядра Linux многими компаниями, лидерами современного рынка ИТ.

Ядро Linux — это огромный проект с участием многих разработчиков, что делает невозможным контроль одному человеку. Ядро имеет различные подсистемы, такие как графика, USB-устройства, сети, планировщики и т. Д. Поддержанием каждой подсистемы занимается отдельный человек - меинтейнер. Компании и разработчики отправляют свои патчи меинтейнерам определенной подсистемы.

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

Интересной особенностью является выбранная система координации действий всех разработчиков - используется рассылка Email. Электронная почта оказалась лучшим способом управления таким большим проектом, как ядро. Она быстрее, чем любая из альтернатив, при количестве изменений от 8 в час от 4000 разработчиков и 400 компаний, нужно очень мощное решение.

Рисунок 9 – Логотип macOS

MacOS (формально известная как Mac OS X, а затем OS X) - это графическая операционная система, разработанная Apple Inc. MacOS стала заменой классической Mac OS, основной операционной системы Apple с 1984 года [10]. В отличие от своих предшественников, macOS — это операционная система UNIX, построенная на технологиях, разработанных NeXT в третьей половине 1980-х годов. Эта операционная система была впервые выпущена в 1999 году как Mac OS X Server 1.0, за которой последовала пользовательская версия, выпущенная в апреле 2001 года - Mac OS X v10.0 «Cheetah»[7]. В последствии было выпущено несколько серверных версий macOS, они были интегрированы в OS X 10.7 «Lion» [7].

До присоединения к macOS серверная версия macOS Server была архитектурно идентична своему настольному аналогу, обычно работающему на сервере Apple Macintosh [7]. macOS Server включал программные инструменты для групповой работы и администрирования, которые обеспечивали легкий доступ к ключевым сетевым службам. В Mac OS X v10.7 Lion все серверные аспекты Mac OS X были адаптированы к пользовательской версии. Продукт был переименован в OS X. Серверные инструменты теперь доступны в приложении [7].

На рисунке 10 представлена архитектура macOS.

AQUA

CLASSIC

CARBON

COCOA

JAVA

QUARC

OPENGL

QUICKTIME

DARWIN

Рисунок 10 – Архитектура macOS.

ГЛАВА 2. ОСНОВНЫЕ ФУНКЦИИ ОС

Операционную систему можно рассматривать с разных точек зрения [4, 11], рис. 11.

Набор функций

Представления ОС

Системные службы

Многослойная структура

Рисунок 11 – Представления ОС

Наиболее понятной является рассмотрение ОС с точки зрения функций ОС [4], рис. 12.

Рисунок 12 – Функции ОС.

2.1. Управление памятью приложений

Ядро операционной системы отвечает за организацию памяти, используемой для всей системы. Это гарантирует, что программа не имеет доступа к пространству памяти, уже используемому другой программой [4]. Каждая программа должна иметь независимый диапазон памяти. Совместная организация памяти, используемая во многих устаревших операционных системах, была организована таким образом, что программы не могли увеличить объем выделенной им памяти. Механизм управления памятью не использовался до определенного времени, поскольку программы часто содержат ошибки, которые могут привести к увеличению объема выделенной памяти. Если программа выйдет из строя, это может привести к повреждению или перезаписи памяти, используемой одной или несколькими другими программами. Вредоносные программы и вирусы могут намеренно изменить память другой программы или повредить саму операционную систему. В случае кооперативного способа организации памяти достаточно одной работающей со сбоями программы, чтобы система вышла из строя. Управление памятью позволяет ядру ограничивать доступ процессов к памяти компьютера. Существуют различные методы управления памяти, в том числе механизм сегментации памяти на страницы. Все методы требуют некоторого уровня аппаратной поддержки (например, 80286 MMU), которая доступна не на всех компьютерах. И в сегментации, и в механизме страниц специальные регистры защищенного режима определяют для ЦП, какой адрес памяти должна предоставлять операционная система. Попытки доступа к другим адресам памяти вызывают прерывание, которое заставляет ЦП возвращаться в режим контроллера. Это явление называется Seg-V, потому что в этой ситуации очень сложно передать значимый результат, ядро в основном принудительно завершает программу с ошибкой и предоставляет информацию об ошибке. Версии Windows 3.1 имели некоторый уровень защиты памяти, но приложения могли легко обойти необходимость его использования.

2.2. Универсальный доступ к периферийным устройствам

Пример: устройства ввода-вывода.

Драйвер оборудования — это специальная компьютерная программа, которая позволяет подключаться к устройствам [12]. Обычно он состоит из интерфейса, который помогает общаться с устройством через специальные компьютерные станции или подсистемы связи, к которым устройство подключается путем передачи команд и / или получения информации об устройстве. Это специальная компьютерная программа, работающая независимо от устройств. Основная конструктивная особенность устройств - абстракция. Даже модели одного класса устройств разные. Выпускаются новые модели, которые обеспечивают более надежную и лучшую производительность, и с этими новыми моделями часто обращаются иначе. Еще одна функция оборудования - преобразование вызовов функций операционной системы в вызовы конкретных устройств. Теоретически, новое устройство, управляемое по-новому, должно нормально работать при наличии подходящего программного обеспечения. Новое программное обеспечение гарантирует, что устройство будет работать в обычном режиме.

До всех версий Windows Vista и Linux 2.6 реализация ПО была совместной, то есть если программа зацикливалась, система аварийно останавливалась. В самых последних версиях этих операционных систем ядро не позволяет программисту создавать проблемы такого рода. Ядро отделяется от процесса, пока не получит соответствующий ответ от оператора или не выдаст новые задачи.

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

Компьютер 1

Приложение

Локальная ОС

Клиент 1

Коммуника- ционные средства

Компьютер 2

Приложение

Сервер

Коммуника- ционные средства

ОС

Рисунок 13 – Передача данных через сеть

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

Многие операционные системы поддерживают соглашения с конкретными поставщиками или открытые сетевые соглашения, такие как IBM SNA, DECnet, выпущенные корпорацией Digital Equipment Corporation, и соглашения Microsoft, разработанные для Windows [7]. Определенные соглашения о доступе к файлам для определенных задач могут быть защищены через NFS. Соглашения ESound или esd могут быть легко расширены по сети для передачи голоса из локальных приложений [7].

2.3. Управление оперативной памятью

Эта функция обеспечивает распределение памяти между процессами виртуальной памяти [4, 14, 15].

Странично-сегментное разделение

Без использования внешней памяти

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

Сегментное разделение

Страничное разделение

Перемещаемыми разделами

Динамическими разделами

Фиксированными разделами

С использованием внешней памяти

Рисунок 14 – Методы распределения памяти

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

2.4. Управление файловой системой

Функция использует данные в неэнергоемких источниках данных (жесткий диск, оптический привод и т. д.); в основном управляется файловой системой [12].

Возможность доступа к информации на дисках - одна из важнейших функций всех операционных систем, рис. 15. Компьютеры хранят информацию на дисках в виде файлов, которые предназначены для обеспечения быстрого, надежного доступа. Особый механизм, с помощью которого файлы хранятся на дисках, называется файловой системой. Файлы имеют атрибуты name. Ранние операционные системы в основном использовали один тип диска и только одну файловую систему. Такие файловые системы имели ограниченные возможности и низкую скорость работы. Эти ограничения создавали недостатки в операционной системе.

Запрос к файлу

Символьный уровень

Базовый уровень

Проверка прав доступа

Логический уровень

Физический уровень

Рисунок 15 – Общая модель файловой системы

Хотя многие операционные системы поддерживают ограниченное количество опций доступа к памяти, UNIX и Linux, например, поддерживает технологию, называемую виртуальной файловой системой (VFS) [7]. Операционные системы, такие как UNIX, поддерживают широкий спектр устройств хранения, независимо от их структуры файловых систем. Это позволяет приложениям получать доступ к устройствам, не зная о них. VFS позволяет операционной системе разрешать приложениям подключаться к неограниченному количеству устройств через специальное оборудование, такое как файловые системы.

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

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

Между файловыми системами много различий, и поддерживать их все одновременно сложно. Допустимые символы в именах файлов, прописные и строчные буквы и различные атрибуты файлов затрудняют реализацию единого интерфейса для всех файловых систем. Операционные системы рекомендуют использовать специальные файловые системы, такие как NTFS в Windows и ext3 и ReiserFS в Linux, рис. 16.

Корневой каталог

Подкаталог

Подкаталог

Подкаталог

Подкаталог

Подкаталог

Подкаталог

Подкаталог

файлы

файлы

файлы

файлы

файлы

файлы

Рисунок 16 – Файловая система

Поддержка файловых систем сильно отличается у современных операционных систем, хотя есть некоторые общие файловые системы, которые включают почти все операционные системы. В Windows каждая файловая система обычно ограничена, например, компакт-диски должны использовать ISO 9660 или UDF, а для Windows Vista NTFS является единственной файловой системой, в которой может быть установлена операционная система. Linux можно установить на несколько файловых систем [7]. В отличие от других операционных систем, Linux и UNIX позволяет использовать любую файловую систему, независимо от того, на каком носителе она хранится: жесткий диск, носитель или даже другую файловую систему [7].

2.5. Создание пользовательского интерфейса

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

Графический пользовательский интерфейс (англ. Graphical user interface, GUI) относится к тексту, изображениям и элементам пользовательского интерфейса в зависимости от способа использования компьютера или устройства, управляемого компьютером.

Графический пользовательский интерфейс включает компоненты пользовательского интерфейса (такие как окна, меню, переключатели, флажки и значки), используемые для клавиатуры в дополнение к указывающему устройству (например, мыши, сенсорной панели или трекболу). Компоненты чаще всего доступны из библиотеки пользовательского интерфейса. Эти части графического пользовательского интерфейса можно выделить с помощью термина WIMP, который обозначает окна, значки, меню и указывающие устройства (сокращение от Windows, Icons, Menus, Pointer). Появление КПК привело к так называемому дизайну пользовательского интерфейса Post-WIMP. К пользовательским интерфейсам можно применить метафоры рабочего стола или бумажные метафоры. Пользовательский интерфейс современного компьютера обычно состоит из рабочего стола и графических программ, используемых через него.

Пользовательский интерфейс

Командный

WIMP

SIKL

Однопрограммная ОС

Пакетная технология

Многопрограммная ОС

Диалоговая технология

Многопользовательская ОС

Сетевая технология

Рисунок 17 – Интерфейсы пользователя и технологии

Хотя технически графический интерфейс пользователя не является службой операционной системы, ядро операционной системы может позволить графическому интерфейсу быть более надежным, уменьшая количество изменений в контексте его функций вывода [6]. Другие операционные системы являются модульными, то есть графическая подсистема отделена от ядра операционной системы. В 1980-х годах в UNIX и многие другие системы были построены подобным образом. Так устроены GNU/Linux и macOS [7]. Начиная с новых выпусков Microsoft Windows, графическая подсистема Windows Vista в основном находится в пользовательской области. Windows 9x имела очень небольшую границу между интерфейсом и ядром [7].

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

Рисунок 18 – Классификация пользовательских интерфейсов

X Window System - одно из наиболее часто устанавливаемых приложений с GNOME или KDE Plasma 5 в UNIX или аналогичных системах.

Со временем был создан ряд графических интерфейсов пользователя на основе UNIX, многие из которых возникли в X11 [7].

Графический интерфейс пользователя со временем эволюционировал. Например, Windows пытается изменить предпочтения пользователя [7]. Каждая новая версия GUI, выпущенная для каждой версии Mac OS, претерпевает изменения и практически полностью изменилась со времен классической Mac OS, где графический интерфейс встроен в ядро.

Метафора рабочего стола рассматривает компьютерный монитор как физический рабочий стол пользователя, на котором могут быть размещены такие объекты, как документы и папки с документами [4]. Документ можно открыть в окне, которое представляет собой бумажную копию документа, размещенного на рабочем столе. Также доступны небольшие приложения, называемые настольными аксессуарами, например, калькулятор, блокнот и т. д.

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

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

На рисунке 19 представлен типовой пример графического интерфейса операционной системы Ubuntu, показан рабочий стол, окна, значки, строка меню и т.д.

Рисунок 19 – графический интерфейс операционной системы Ubuntu

Первой широко используемой графической операционной системой с 1984 года считалась операционная система Apple Macintosh. В ней полностью отсутствует текстовая оболочка, и поэтому к ней можно получить доступ только с помощью графического пользовательского интерфейса, обычно с помощью мыши [7]. Микрокомпьютеры 16/32-разрядного поколения, Atari ST и Amiga, выпущенные в следующем году, также имели графические операционные системы по умолчанию, хотя на этих компьютерах также предлагалось открыть командную строку, и компьютеры могли использоваться традиционным способом [7].

ЗАКЛЮЧЕНИЕ

Тема курсовой работы «Функции операционных систем персональных компьютеров».

В работе рассмотрены следующие вопросы.

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

В первой главе дан обзор основных вопросов, связанных с операционными системами. Дано определение ОС, рассмотрены основные компоненты ОС, приведена классификация ОС. Рассмотрены наиболее популярные ОС для персональных компьютеров. Это Windows, GNU/Linux и macOS. Приведена упрошенная архитектура этих ОС.

Во второй главе описаны основные функции ОС. Это следующие функции:

• управление памятью;

• работа с внешними устройствами и компьютерной сетью;

• обеспечение интерфейса пользователя;

• обеспечение автоматического запуска;

• обслуживание файловой системы;

• управление установкой, исполнением и удалением приложений;

• обеспечение взаимодействия с аппаратным обеспечением;

• обслуживание компьютера.

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

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Батаев, А.В. Операционные системы и среды: Учебник / А.В. Батаев, Н.Ю. Налютин, С.В. Синицын и др. - М.: Academia, 2018. - 271 c.

2. Бекман И.Н. Информация, информатика и информационные технологии. Курс лекций. Москва, 2014.

3. Гайсинский И. Е, Вострикова Т.В., Перова М.В. Информатика: теоретические основы и практика. Ростов н/Д: Изд-во СКАГС, 2008. - 115 с.

4. Дейтел, Х.М. Операционные системы. Распределенные системы, сети, безопасность / Х.М. Дейтел, Д.Р. Чофнес. - М.: Бином, 2013. - 704 c.

5. Дроздов, С.Н. Операционные системы: Учебное пособие / С.Н. Дроздов. - Рн/Д: Феникс, 2018. - 480 c.

6. Информатика. Базовый курс / Симонович С.В. и др. - Спб.: Питер, 2006. - 639 с.

7. Информационный портал "Персональный компьютер". Режим доступа: URL: http://dammlab.com/osnovi-pk/peref_ustr/skanery-i-princip-raboty-skanera.html

8. Иртегов, Д.В. Введение в операционные системы / Д.В. Иртегов. - СПб.: БХВ-Петербург, 2012. - 1040 c.

9. Карпов В.Е., Коньков К.А. Основы операционных систем. Изд-во "Интуит. ру". 2005.

10. Карасева, М.В. Операционные системы. Практикум для бакалавров / М.В. Карасева. - М.: КноРус, 2012. - 376 c.

11. Киселев, С.В. Операционные системы: Учебное пособие / С.В. Киселев. - М.: Academia, 2018. - 250 c.

12. Могилев А.В., Пак Н.И., Хённер Е.К. Информатика.2-е изд. Учеб. пособие. - М: Изд. центр Академия, 2003. - 816 с.

13. Партыка, Т.Л. Операционные системы, среды и оболочки: Учебное пособие / Т.Л. Партыка, И.И. Попов. - М.: Форум, 2018. - 256 c.

14. Стащук, П.В. Краткое введение в операционные системы: Учебное пособие / П.В. Стащук. - М.: Флинта, МПСУ, 2008. - 128 c.

15. Таненбаум, Э. Современные операционные системы / Э. Таненбаум. - СПб.: Питер, 2019. - 1120 c.