
- •Содержание Оглавление
- •1. Основные действия операционной системы при управлении заданиями – программы функций, характеристика действий, конечный результат.
- •2. Способы реализации управления данными – подпрограммы ввода-вывода.
- •3. Понятие метода доступа (определение, состав).
- •4. Понятие буфера: методы отведения буферов и режимы передачи информации.
- •5. Способы организации данных и типы языков управления.
- •6. Понятие тупика, характеристика отношений, возникающих в системе.
- •7. Основная задача обнаружения тупика, основной способ определения состояния системы (редукция графа).
- •8. Факторы, обуславливающие сложность восстановления системы после тупика.
- •9. Главные стратегические принципы предотвращения тупиков (принципы j.W. Havendera).
- •10. Условия возникновения тупиков и основные направления исследования тупиков.
- •11. Предотвращение тупиков, обход тупиков.
- •12. Методы обнаружения тупиков и восстановления после тупиков.
- •13. Условие «ожидания дополнительных ресурсов » и его разрешение.
- •14. Условие неперераспределяемости ресурсов и его разрешение.
- •15. Условие «кругового ожидания » и его разрешение.
- •16. Понятие критической области и её значение для функционирования системы.
- •17. Описание формальной модели операционной системы.
- •18. Взаимосвязь ресурсов и процессов в многопроцессорной эвм.
- •19. Базовые операции над графом ресурсов и процессов и правила преобразования.
- •20. Схемы работы ос в различных режимах мультипрограммирования.
- •21. Понятие ос юникс. Основные преимущества и недостатки.
- •22. Основные центральные идеи ос юникс и их реализация.
- •23. Организация ввода-вывода в ос юникс, характерные особенности.
- •24. Понятие конвейера, связь с в/в, фильтр.
- •25. Понятие процесса в ос юникс, отличие от предыдущих ос, утилиты.
- •26. Компоненты ос: sccs и make
- •27. Планирование в ос юникс
- •28. Файловая система ос юникс: понятие, возможности, структурные особенности.
- •29. Структура файловой системы (на диске).
- •30. Ядро системы юникс – понятие и основные секции
- •31. Идеология структуры ядра ос юникс.
- •32. Генеалогия ос юникс и основные этапы разработки
- •33. Интерфейсы ос юникс
- •34. Определение и основные сведения об ос linux
- •35. Файловая система linux: организация, система работы и управления доступом к файлу.
- •36. Мультипрограммирование и мультиобработка – общее и особенное.
- •37. Основная цель операционной системы и критерии оптимизации.
- •38. Определение процесса и операции в иерархической операционной системе.
- •39. Отношения предшествования между процессами и развитие процесса в системе.
- •40. Понятие критической области.
- •41. Семафор, механизм синхронизации.
- •42. Компоненты ядра ос юникс и структура программного обеспечения.
- •43. Утилиты ос юникс.
- •44. Идеология структуры и базовый состав ядра ос юникс.
38. Определение процесса и операции в иерархической операционной системе.
Под процессом понимается контейнер ресурсов, используемых потоками. Процесс включает: закрытое адресное пространство, в котором располагаются код, данные и стеки потоков; список открытых описателей ресурсов; контекст защиты; идентификатор процесса.
Поток команд исполняемой программы, или просто поток - сущность внутри процесса, получающая процессорное время. Поток характеризуется набором регистров (состоянием), идентификатором потока, стеками режимов ядра и пользователя.
Задача ОС состоит в том, чтобы организовать поддержку процессов, которая подразумевает, что каждый процесс получит все необходимые ему ресурсы (место в памяти, процессорное время и т.д.). Считается также, что независимые процессы не должны влиять друг на друга, а процессы, которым необходимо обмениваться информацией, должны иметь возможность сделать это путем межпроцессного взаимодействия.
39. Отношения предшествования между процессами и развитие процесса в системе.
Состояние системы определяется действиями производимыми процессами, которые могут затребовать захватить и освободить ресурсы. При минимальном аппаратном параллелизме часто полезно рассматривать процессы как протекающие параллельно. Тогда типы отношения предшествования, которые могут возникнуть между процессами, можно представить следующим образом:
Отношения предшествования обозначаются направленной дугой графа. Каждая дуга представляет трассу развития по времени наборов процессов и связано описывает отношение представления процесса. Эти графы обычно называют- графы развития процессов.
Пусть S(a;b) означает последовательную связь процессов a и b, а P(a;b) параллельную связь процессов a и b. Тогда граф развития процесса является правильно вложенным, если он может быть описан средствами S , P или только композицией этих функций. Тогда первые три графа могут быть описаны так:
S (P1, S (P2, S (P3, P4)))-последовательный
P (P1, P (P2, P (P3, P4)))-параллельный
S(P1 , S(P(P2,P(S,(P3,P(P4,P5))P6))P7,P8)))
Общий граф предшествования не является правильно вложенным, так как любое описание сделанное с помощью функциональной композиции должно включать на самом внутреннем уровне выражение в виде S(Pi, Pj) P(Pi,Pj) Pij = {Pk / n=1,2,3…8}. Связь P не может появиться, так как этот граф не содержит не одного подграфа в этой форме. Все последовательно связанные pi pj имеют ещё один процесс Pk который начинается или заканчивается между Pi и Pj но становится недоступным для дальнейшего использования если появляется связь от Pi к Pj, так как тогда связь процесса Pk не может быть описана. Таким образом, S(Pi,Pj) не может быть использована и описание правильно вложенного графа не возможно.
40. Понятие критической области.
Когда несколько процессов могут асинхронно изменять содержимое общей области данных, необходимо защитить данные от одновременного изменения двумя и более процессами. Рассмотрим два процесса P1 и P2 работающих на центральных процессорах C1 и C2. Эти процессы увеличивают значение переменной X, которая представляет число единиц ресурса. Если P1 выполняется на C1, а P2 выполняется на C2, то может возникнуть одна из следующих последовательностей:
P1:R1:=x; R1:=R1+1; x:=R1; ….
P2:… R2:=x; R2:=P2+1; x:=R2;
t0 → time
P1:R1=x; R1:=R1+1; x:=R1;…
P2:… R2:=x; R2:=R2+1; x:=R2;
Пусть х содержит значение V в момент времени t0. В момент tk переменная содержала бы V+1 , если бы выполнение шло на процессорах С1 и С2 выполнялось бы по 1) и переменная х содержала бы V+2 , если выполнялось по 2). Оба значение могут быть реализованы, если Р1 и Р2 разделены во времени. При этом должно учитываться каждое приращение х. Решение заключается в x:=x+1 только одному процессу. Если имеется несколько последовательных процессов, которые могут связываться друг с другом через общую память для хранения данных, то каждая программа, выполняемая процессорами, содержит критическую область, в которой организован доступ к общим данным. Проблема заключается в том, чтобы запрограммировать процессы так, чтобы в любой момент только один из процессов находился в своей критической области. Если процесс P входит в свою критическую область (CS) то никакой другой процесс не может сделать, то же самое до тех пор, пока P не покинет свою CS. Следует иметь в виду, что в любом случае должны выполняться следующие предположения:
Считывание из общей памяти и запись в неё есть неделимая операция.
Критические области не могут иметь связанных с ними приоритетов.
Программа может останавливаться и вне своей критической области.
Схема работы с критической областью может быть представлена следующим образом:
Основной целью является взаимное исключение. Одновременно должны быть устранены два возможных типа блокировки:
Процесс нормально работающий вне своей CS не может блокировать другой процесс при вхождении другого процесса в свою CS.
Два процесса, готовые войти в свои критические области не могут откладывать неопределённо долго решение о том какой из них действительно войдёт в CS первым, используя принцип «сверхвежливости».