Учебный курс Основы операционных систем Лекция 7 кандидат физико-математических наук, доцент Карпов Владимир Ефимович.

Презентация:



Advertisements
Похожие презентации
Основы операционных систем.
Advertisements

Основы операционных систем. Тема 6. Механизмы синхронизации.
Демидов А.В г. Операционные системы Лекция 6 Буфер оперативной памяти, Организация памяти.
Дисциплина: Операционные системы § 7. Организация памяти компьютера План: 1.Физическая память компьютера. 2.Логическая память компьютера. 3.Функции системы.
Учебный курс Основы операционных систем Лекция 11 кандидат физико-математических наук, доцент Карпов Владимир Ефимович.
Учебный курс Основы операционных систем Лекция 8 кандидат физико-математических наук, доцент Карпов Владимир Ефимович.
Учебный курс Основы операционных систем Лекция 2 кандидат физико-математических наук, доцент Карпов Владимир Ефимович.
Операционные системы, среды и оболочки Управление памятью.
Управление памятью. Память является важнейшим ресурсом, требующим тщательного управления со стороны мультипрограммной операционной системы. Распределению.
Системное программное обеспечение Лекция 6 Механизмы синхронизации.
П рограммное обеспечение (англ. software) – это совокупность программ, обеспечивающих функционирование компьютеров и решение с их помощью задач предметных.
Взаимодействие процессов: синхронизация, тупики. Параллельные процессы Параллельные процессы – процессы, выполнение которых хотя бы частично перекрывается.
Операционные системы и среды. Схема устройства жесткого диска Дорожка N Сектор (блок) Пластина 1 Пластина 2 Цилиндр 0 сторона Диск – одна или несколько.
Учебный курс Принципы построения и функционирования ЭВМ Лекция 11 Микрокоманды и микрооперации профессор ГУ-ВШЭ, доктор технических наук Геннадий Михайлович.
Операционные системы Управление памятью Скрипов Сергей Александрович 2009.
Управление процессами 3.Взаимодействие процессов: синхронизация, тупики 3.1.Разделение ресурсов 3.2.Взаимное исключение Проблемы реализации взаимного.
Учебный курс Операционные среды, системы и оболочки Лекция 8 Лекции читает доктор технических наук, профессор Назаров Станислав Викторович.
Операционные системы Подготовила Подготовила студентка студентка 1 курса группы Э курса группы Э-108 Шпудейко Кристина Шпудейко Кристина.
Управление процессами 3.Взаимодействие процессов: синхронизация, тупики 3.1.Разделение ресурсов 3.2.Взаимное исключение Проблемы реализации взаимного.
Лекция 7 Управление памятью Сегментная, страничная и сегментно- страничная организация памяти.
Транксрипт:

Учебный курс Основы операционных систем Лекция 7 кандидат физико-математических наук, доцент Карпов Владимир Ефимович

2 Эквивалентность семафоров, мониторов и сообщений Реализация мониторов через семафоры Semaphore mut_ex = 1; /* Для организации взаимоисключения */ При входе в монитор При нормальном выходе из монитора void mon_enter (void){ P(mut_ex); P(mut_ex);} void mon_exit (void){ V(mut_ex); V(mut_ex);} Semaphore c i = 0; int f i = 0; /* Для каждой условной переменной */ Для операции wait void wait (i){ f i += 1; f i += 1; V(mut_ex); P(c i ); V(mut_ex); P(c i ); f i -= 1; f i -= 1;} Для операции signal void signal_exit (i){ if (f i ) V(c i ); if (f i ) V(c i ); else V(mut_ex); else V(mut_ex);}

3 Эквивалентность семафоров, мониторов и сообщений Реализация сообщений через семафоры буфер Для каждого процесса: Semaphore c i = 0; Очередь на чтение Очередь на запись Один на всех: Semaphore mut_ex = 1; Чтение P(mut_ex) Есть msg? – встать в очередь – V(mut_ex) – V(mut_ex) – P(c i ) – P(c i ) – прочитать – есть кто на запись? – есть кто на запись? – V(mut_ex) – удалить – V(c j ) – V(c j ) Semaphore c j = 0; Один на всех: Semaphore mut_ex = 0; -нет PiPiPiPi -да M1M1M1M1 -нет PjPjPjPj -да Semaphore c j = 1;

4 Эквивалентность семафоров, мониторов и сообщений Реализация сообщений через семафоры буфер Для каждого процесса: Semaphore c i = 0; Очередь на чтение Очередь на запись Один на всех: Semaphore mut_ex = 1; Запись P(mut_ex) Есть место? – встать в очередь – V(mut_ex) – V(mut_ex) – P(c i ) – P(c i ) – записать – есть кто на чтение? – есть кто на чтение? – V(mut_ex) – удалить – V(c j ) – V(c j ) Semaphore c j = 0; Один на всех: Semaphore mut_ex = 0; -нет PjPjPjPj -да M1M1M1M1 -нет PiPiPiPi -да Semaphore c j = 1; M2M2M2M2 M3M3M3M3 M4M4M4M4

5 Эквивалентность семафоров, мониторов и сообщений Реализация семафоров через мониторы Monitor sem { int count; int count; Condition c i ; /* для каждого процесса */ Condition c i ; /* для каждого процесса */ очередь для ожидающих процессов; очередь для ожидающих процессов; void P(void){ void P(void){ if (count == 0) { добавить себя в очередь; if (count == 0) { добавить себя в очередь; c i. wait; c i. wait; } count = count -1; count = count -1; } void V(void){ void V(void){ count = count+1; count = count+1; if(очередь не пуста) { удалить процесс P j из очереди; if(очередь не пуста) { удалить процесс P j из очереди; c j.signal; c j.signal; } } { count = N; } { count = N; }}

6 Эквивалентность семафоров, мониторов и сообщений Реализация семафоров через сообщения send (A, P, P1); send (A, P, P1); receive (P1, msg); receive (P1, msg); P1 Pm A int count = 1; P0P0P0P0 Для ожидания ожидания while(1) { while(1) { receive (A, msg); receive (A, msg); if(это P сообщение){ if(это P сообщение){ if(count > 0) {count = count -1; if(count > 0) {count = count -1; send (Pi, msg); } send (Pi, msg); } else добавить в очередь; else добавить в очередь; } else if(это V сообщение) { else if(это V сообщение) { P1P1P1P1 send (A, V,Pm); send (A, V,Pm); receive (Pm, msg); receive (Pm, msg); PmPmPmPm… send(Pi, msg); send(Pi, msg); if(есть ждущие){ if(есть ждущие){ удалить из очереди; удалить из очереди; send (Pk, msg); } send (Pk, msg); } else count = count+1; else count = count+1; }} P:V: P, P1 int count = 0; P1P1P1P1 msg

7 Часть III. Управление памятью

8 Иерархия памяти Вторичная память Оперативная память Кэш Регистры Стоимость одного бита Время доступа Объем Управляется ОС Управляется менеджером памяти

9 Принцип локальности Большинство реальных программ в течение некоторого отрезка времени работает с небольшим набором адресов памяти – это принцип локальности Принцип локальности связан с особенностями человеческого мышления

10 Проблема разрешения адресов Человеку свойственно символическое мышление. Адреса (имена) переменных описываются идентификаторами, формируя символьное адресное пространство Оперативная физическая память может быть представлена в виде массива ячеек с линейными адресами. Совокупность всех доступных физических адресов в вычислительной системе – это ее физическое адресное пространство Как ? Когда ?

11 Связывание адресов Другие объектные модули модули Загрузчик Двоичный образ в памяти Системные библиотеки Динамические библиотеки ПроцессориБУП Исходная программа Компилятор Объектныймодуль Редактор связей Загрузочный модуль Этап компиляции Этап загрузки Этап выполнения

12 Логическое адресное пространство Символьное адресное пространство – совокупность всех допустимых идентификаторов переменных Логическое адресное пространство – совокупность всех допустимых адресов, с которыми работает процессор Физическое адресное пространство – совокупность всех доступных физических адресов в вычислительной системе

13 Функции ОС и hardware для управления памятью Отображение логического адресного пространства процесса на физическое адресное пространство Отображение логического адресного пространства процесса на физическое адресное пространство Распределение памяти между конкурирующими процессами Распределение памяти между конкурирующими процессами Контроль доступа к адресным пространствам процессов Контроль доступа к адресным пространствам процессов Выгрузка процессов (целиком или частично) во внешнюю память Выгрузка процессов (целиком или частично) во внешнюю память Учет свободной и занятой памяти Учет свободной и занятой памяти

14 Однопрограммная вычислительная система ОС ОС 0 Процесс пользователя

15 Схема с фиксированными разделами ОС 0 Раздел 1 Раздел 2 Раздел 3 Задание 1 Задание 2 Задание 3 Задание 4 Очередь заданий Процесс 1 Процесс 2 Процесс 3

16 Внутренняя фрагментация ОС 0 Раздел 1 Раздел 2 Раздел 3 Процесс 1 Процесс 2 Процесс 3 Внутренняя фрагментация – «потеря» части памяти, выделенной процессу, но не используемой им

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