Главная » Просмотр файлов » Лекции в ворде

Лекции в ворде (1115146), страница 4

Файл №1115146 Лекции в ворде (Лекции в ворде) 4 страницаЛекции в ворде (1115146) страница 42019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

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

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

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

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

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

Третья проблема: в одной из программ появилась ошибка, программа зациклилась и система зависла. Что в этом случае может помочь? Может помочь некоторое средство, которое будет периодически прерывать выполнение программы. Для нашего примера это должно быть прерывание по таймеру, чтобы один раз в какой-то промежуток времени процесс прерывался, и управление передавалось ОС. Она же сама должна решать, как ей поступить в этом случае.

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

Аппарат подкачки

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

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

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

Теперь вернемся к нашей пирамиде:

Прикладные программы

ОС

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

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

Управление физическими устройствами

Аппаратные средства

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

Лекция №5

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

1. Назначение и основные функции операционной системы.

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

Любая операционная система (ОС) оперирует некоторыми сущностями, которые вместе со способами управления ими во многом характеризуют ее свойства. К таким сущностям могут относиться понятия файла, процесса, объекта, и т.д. Каждая ОС имеет свой набор таких сущностей. К примеру, в ОС Windows NT к таким сущностям можно отнести понятие объекта, и уже через управление этой сущностью предоставляются все возможные функции. Если мы посмотрим UNIX, то в ней такой сущностью, в первую очередь, является понятие файла, а во вторую очередь, понятие процесса.

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

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

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

  1. Управление использованием времени центрального процессора.

  2. Управление «подкачкой» и буфером ввода.

  3. Управление разделяемыми ресурсами.

Основные проблемы управления процессами.

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

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

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

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

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

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

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

Характеристики

Тип файла
Документ
Размер
1,85 Mb
Тип материала
Высшее учебное заведение

Список файлов лекций

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