введение_1 (Методическое пособие по Операционным системам)

2018-01-12СтудИзба

Описание файла

Файл "введение_1" внутри архива находится в следующих папках: Методическое пособие по Операционным системам, Операционне системы. Документ из архива "Методическое пособие по Операционным системам", который расположен в категории "". Всё это находится в предмете "операционные системы" из 7 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "операционные системы" в общих файлах.

Онлайн просмотр документа "введение_1"

Текст из документа "введение_1"

7


Глава 1

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

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

Компиляторы Редакторы Интерпретаторы команд

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


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

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

Машинный язык

Рис. 1.1. Компьютерная система состоит из аппаратного обеспечения, системных программ и приложений

Выше расположен микроархитектурный уровень, на котором физические уст­ройства рассматриваются с точки зрения функциональных единиц. Обычно на этом уровне находятся внутренние регистры центрального процессора (CPU — Central Processing Unit) и арифметико-логическое устройство. На каждом такте

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

Определенная система команд передается по маршруту передачи данных. Не­которые команды могут быть выполнены за один цикл передачи данных, другие требуют нескольких циклов. Такие команды могут использовать регистры или другие возможности аппаратуры. Команды, видимые для работающего на ассемб­лере программиста, формируют уровень ISA (Instruction Set Architecture — архи­тектура системы команд), часто называемый машинным языком.

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

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

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

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

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

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

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

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

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

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

Как было упомянуто ранее, архитектура (система команд, организация памя­ти, ввод-вывод данных и структура шин) большинства компьютеров на уровне машинного языка примитивна и неудобна для работы с программами, особенно в процессе ввода-вывода данных. Чтобы это утверждение не показалось голослов­ным, кратко рассмотрим пример того, как происходит ввод-вывод данных с гибкого диска через совместимые микросхемы контроллера NEC PD765, используемые на большинстве персональных компьютеров с процессором Intel. (В этом пособии мы будем использовать и термин «гибкий диск», и термин «дискета».) Контрол­лер PD765 имеет 16 команд, каждая задается передачей от 1 до 9 байт в регистр устройства. Это команды для чтения и записи данных, перемещения головки диска и форматирования дорожек, а также для инициализации, распознавания, уста­новки в исходное положение и калибровки контроллера и приводов.

Основными командами являются команды read и write (чтение и запись). Каж­дая из них требует 13 параметров, упакованных в 9 байт. Эти параметры опреде­ляют такие элементы, как адрес блока на диске, который нужно прочитать, коли­чество секторов на дорожке, физический режим записи, расстановку промежутков между секторами. Они же сообщают, что делать с меткой адреса данных, которые были удалены. Если вы не можете сразу это осмыслить, не волнуйтесь — полнос­тью это понятно лишь посвященным. Когда выполнение операции завершается, чип контроллера возвращает упакованные в 7 байт 23 параметра, отражающие на­личие и типы ошибок. Но этого не достаточно, и программист при работе с гибким диском должен также постоянно знать, включен двигатель или нет. Если двига­тель выключен, его следует включить (с длительным ожиданием запуска) прежде, чем данные будут прочитаны или записаны. Двигатель не может оставаться вклю­ченным слишком долго, так как гибкий диск изнашивается. Программист вынуж­ден выбирать между длинными задержками во время загрузки и изнашивающи­мися гибкими дисками (с вероятностью потери данных на них).

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

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

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

Операционная система как менеджер ресурсов

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

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

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

Управление ресурсами включает в себя их мультиплексирование (распределе­ние) двумя способами: во времени и в пространстве. Когда ресурс распределяется во времени, различные пользователи и программы используют его по очереди. Сначала один из них получает доступ к использованию ресурса, потом другой и т. д. Например, несколько программ хотят обратиться к центральному процессору. В этой ситуации операционная система сначала разрешает доступ к процессору одной программе, затем, после того как она поработала достаточное время, другой программе, затем следующей и, в конце концов, опять первой. Определение того, как долго ресурс будет использоваться во времени, кто будет следующим и на какое время ему предоставляется ресурс — это задача операционной системы. Еще один пример временного мультиплексирования — распределение заданий, посы­лаемых для печати на принтер. Когда задания выстраиваются в очередь для печати на одном принтере, операционной системе каждый раз нужно принимать решение о том, которое из них будет печататься следующим.

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

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5184
Авторов
на СтудИзбе
435
Средний доход
с одного платного файла
Обучение Подробнее