
- •Ос в общей структуре компьютера.
- •История операционных систем.
- •Классификация современных ос. Задачи современных ос.
- •6. Понятие процесса – ключевое понятие ос.
- •8. Трансляторы: компиляторы и интерпретаторы.
- •9. Иерархия зу (запоминающих устройств).
- •10. Управление оперативной памятью (оп). Менеджер памяти; swapping; виртуальная память.
- •11. Модели организации виртуальной памяти.
- •12. История ос unix.
- •13. Общая архитектура unix. Основные подсистемы ядра.
- •14. Пользовательская среда unix.
- •Командный интерпретатор shell.
- •16. Система каталогов в oс unix. Управление с помощью команд языка Bourn shell.
- •17. Управление файлами с помощью команд языка Bourn shell. Перенаправление ввода/вывода.
- •19. Обработка аргументов командной строки. Переменные окружения.
- •20. Пользователь и группа. Права доступа к файлу.
- •21. Системные вызовы и функции стандартных библиотек. Обработка ошибок.
- •22.Структура программы на языке с. Параметры главной функции (пример).
- •23. Файловая система ос unix: монтирование, индексные дескрипторы, жесткие и символические ссылки, файлы устройств.
- •24.Системные вызовы для работы с файлами
- •25. Понятие «процесс» в ос unix. Контекст процесса; свойства процесса; состояние процесса.
- •26.Создание процессов и упр-е ими.
- •27. Запуск внешней программы
- •29.Общая классификация средств взаимодействия процессов в ос unix.
- •30.Иерархия процессов в ос unix. Понятие сеанса. Фоновые процессы.
- •31.Каналы – средства взаимодействия процессов. Неименованные каналы. Организация конвейера (пример программы).
- •33.Сигналы как средство взаимодействия процессов в ос unix. Диспозиция сигналов.
- •34.Ограничения для процесса в ос unix (по ресурсам). Связь со свойствами процесса.
- •36.Отображение файлов в виртуальное адресное пространство. Разделяемая память.
- •37. Взаимодействие процессов через псевдотерминал.
- •38. Недостатки потокового взаимодействия процессов. Средства System vipc. Пространство имен. Общие принципы работы со средствами System vipc.
- •39. Организация очереди сообщений в ос unix. Структура сообщения. Отправка и принятие сообщений.
- •40.Семафоры, как средство взаимодействия процессов System vipc. Понятие атомарной операции. Массив семафоров.
- •41.Разделяемая память, как средство взаимодействия процессов System vipc.
- •42.Взаимодействие по сети. Понятие протокола. Семейства адресации и типы взаимодействия. Создание сокета в ос unix.
- •45. Потоковые сокеты. Клиент – серверная модель.
- •46. Проблема очередности действий и ее решение.
- •47. Процессы-демоны. Система журнализации.
- •48. Загрузка и жизненный цикл в ос unix.
- •49. Взаимоисключения. Понятие критической секции. Устаревшие подходы к организации взаимного исключения.
- •50.Поддержка взаимоисключения на уровне ос. Мьютексы и семафоры (Дейкстры). Команда ассемблера tsl.
- •51.Проблема тупиков. Граф ожидания
- •52. Нити исполнения (pthreads) в ос unix. Мьютексы pthreads.
- •53.Графический интерфейс в ос unix. Базовые принципы построения x_window.
- •54.Файловая подсистема. Общая структура. Методы выделения дискового пространства. Управление дисковым пространством.
- •55.Файловая подсистема. Структура файловой системы на диске. Реализация директорий. Поиск в директории (хеширование).
- •56.Подсистема ввода/вывода. Схема взаимодействия подсистем ос. Понятие драйвера. Типы драйверов.
СПО.
СПО – программы и компоненты программ, являющиеся общими для всех, кто совместно использует технические средства компьютера и принимаемые как для автоматизации разработки, так и для организации выполнения программ существующих. СПО с этих позиций делится:
1. ОС
2. Системы управления файлами.
3. Интерфейсные оболочки для взаимодействия пользователя с ОС и программные среды.
4. Системы программирования.
5. Утилиты.
ОС – специальный уровень ПО. ОС отвечает (функции):
- за управление внешними устройствами
- обеспечивает пользователя программами с простым доступным интерфейсом для работы с аппаратурой.
Уровень физ. устройства состоит из интегральных микросхем, источники питания, ЭЛТ и т.д.
За работу этих устройств отвечают инженеры-электронщики.
Микро архитектурный уровень. Здесь физ. устройства рассматриваются с точки зрения функциональных единиц. Это уровень внутр. регистров CPU, АЛУ.
На каждом такте ЦП из регистров выбираются 1 или 2 операнда, которые обрабатываются в АЛУ, результат заносится в регистр. Операции над данными на этом уровне могут контролироваться программными приложениями, которые называются микропрограммами или программными цепями. Команды, видимые для работающего на assembler программиста, формируют уровень ISA. Управление устройствами на этом уровне осуществляется с помощью загрузки определенной величины в регистры устройств. Большую роль на этом уровне играют временные соотношения.
Уровень ОС. ОС предназначена для скрытия от пользователей всех этих сложностей. ОС представляет собой уровень ПО, который избавляет от общения с аппаратурой напрямую. Над ОС расположены остальные системные программы (интерпретатор, компилятор). Подобные программы не являются частью ОС, хотя поставщики компьютеров их устанавливают.
Под ОС понимают то ПО, которое запускается в режиме ядра или в режиме супервизора. Ос защищена от вмешательства пользователя с помощью аппаратных средств.
Компиляторы и редакторы запускаются в режиме пользователя. Существуют системы, в которых понятие режим ядра “размыто”. Это встроенные или интерпретируемые системы. (Подобно основанным на JAVA ОС). В них для разделения компонентов используется интерпретация, а не оборудование. В некоторых ОС файловая система работает в пространстве ядра или в пространстве пользователя.
На верху структуры расположены прикладные программы.
Ос в общей структуре компьютера.
ОС можно рассматривать как расширенную или виртуальную машину, в которой проще программировать и легче работать непосредственно с аппаратным обеспечением, составляющим реальный компьютер. Т.е. ОС представляет ряд возможностей, которые можно использовать с помощью спец команд – системных вызовов.
Рассматриваем ОС как удобный интерфейс пользователя – это взгляд сверху вниз. Альтернативный взгляд рассматривает ОС снизу вверх и дает представление об ОС как о механизме, присутствующим в устройстве компьютера для управления всеми частями этой компьютерной системы. Тогда работа ОС заключается в обеспечении организованного и контролируемого распределения процессов, памяти и УВВ между различными программами. ОС распределяет между пользователями не только оборудование, но и информацию. На этом уровне задача ОС состоит в обработке запросов на ресурсы, в подсчете коэффициента загрузки и разрешении проблем конфликтующих запросов. Управление ресурсами включает в себя их мультиплексирование (распределение). Осуществляется 2 способами: во времени и в пространстве. Во времени, когда ресурс распределен во времени, то различные пользователи и программы используют ресурс по очереди. При пространственном распределении вместо поочередности работы каждый клиент получает часть ресурса. При этом возникают вопросы справедливого распределения ОЗУ и защиты ОЗУ. Другой ресурс, распределенный в пространстве, это диск. Один диск в одно и тоже время содержит файлы разных пользователей.
История операционных систем.
1 поколение. 1945-1955 гг. Эл. лампы и коммутационные панели. В Пенсильванском университете Эккерт и Мочли и одновременно в Принстоне Фон Нейман, в Германии Цузе. Все вели работу по созданию выч. машины. Сначала использовались мех. реле. Длительность такта – несколько секунд. Потом реле заменили эл. лампами. Каждую машину строила, программировала и эксплуатировала одна команда. Все программирование на абсолютном машинном языке. Управление основными функциями машины осуществлялось при помощи соединения коммутационных панелей. К нач. 50-х появляются перфокарты.
2 поколение. 1955-1965 гг. Элементно это транзисторы и системы пакетной обработки. С появлением и применением транзисторов компьютеры становятся более надежными, могут работать долго и появляется разделение труда. Машины называют мейнфреймами. Располагаются в спец комнатах с кондиционированием и обслуживаются профессиональными операторами и электронщиками. Машинное время тратилось крайне не эффективно, и общим решением для повышения эффективности стала система пакетной обработки. Общий замысел в сборе полного подноса задания (колоды перфокар). Затем переписать их на магнитную ленту, используя небольшой, недорогой компьютер, например, IBM-1401 для ввода/вывода. За 1 час шла сборка заданий на магнитную ленту, которую ставили на дорогостоящую машину и оператор загружал специальную программу – прообраз сегодняшней ОС. Она считывала первое задание, запускала его и выход отправляла на другую ленту, затем считывала следующее задание и т.д. Типичная ОС Fortran Monitor System.
3 поколение. 1965-1980 гг. Элементно-интегрированные схемы. К началу 60-х изготовили компьютеры по 2 направлениям:
- научные или крупномасштабные (пословная обработка текста для числовых вычислений IBM-7094
- коммерческие компьютеры с посимвольной обработкой IBM-1401. Для сортировки и поиска информации.
Фирма IBM попыталась объединить эти разработки и выпустила серию машин 360. Все эти компьютеры были программно совместимы. Линия использовала мелкомасштабные интегральные микросхемы. Была разработана ОС OS360. Она содержала тысячи ошибок. В ней самое важное достижение – многозадачность. Решение заключалось в разбиении памяти на несколько частей, называемых разделами. Каждому разделу давалось свое задание. Если в ОЗУ содержалось достаточное количество заданий – ЦП мог быть загружен почти на 100%. Сразу возникает проблема защиты памяти. OS360 имела аппаратные средства защиты. ОС имела способность считывать задания с перфокарт на диск по мере того, как их приносили в машинный зал. Всегда, когда текущее задание заканчивалось, ОС могла загружать следующее задание с диска в освободившийся раздел ОЗУ и запускать его, т.е. осуществляла подкачку заданий с диска в ОЗУ. Несмотря на эти плюсы, многие программисты тосковали по 1 поколению, когда было монопольное владение машиной. Решение этой проблем привело к разработке режима разделения времени – вариант многозадачности, при котором у каждого пользователя есть свой диалоговый терминал. При работе в таком режиме чаще выдаются короткие команды (компиляция) чем длинные (сортировка). Тогда появляется фоновый режим, когда ЦП не занят др. заданиями. Первая ОС с режимом разделения времени – CTSS. Разработка Массачусетского технологического института. До тех пор, пока не были распространены необходимые технические средства защиты, ОС не могла получить популярности. Институт вместе с General Electrics и Белли-лабс начали разработку компьютерного предприятия общественного пользователя. Машина поддерживала сотни пользователей в режиме распределения времени. ОС называлась Multics. Разаработчики представляли ее себе как огромную выч. машину, воспользоваться которой мог любой человек в районе Бостона. Пошел рост миникомпьютеров. Первая миниЭВМ PDP-1 (1961г). Последняя PDP-11. Эта серия была не совместима между собой. Математик К.Томпсон взял за основу проект Multics и PDP-7. Он решил написать усеченную однопользовательскую версию системы Multics. Эта работа перешла в Unix. Большой плюс – доступность исходного кода. Выделились две линии в развитии:
- System V (компания AT&T)
- BSD
Чтобы стало возможным писать программы, работающие в любой Unix системе, институт инженеров по электронике и электротехнике IEEE разработал стандарт системы Unix, который назывался Posix. Сейчас этот стандарт поддерживают большинство Unix систем. Он определяет min интерфейс системного вызова, который должен поддерживать совместимые Unix системы.
4 поколение. 1980 – по наши дни. Это ПК. Появление БИС. В 1974г компания Intel выпустила первый универсальный 8р ЦП Intel 8080. Для него потребовалась ОС. У Intel был консультант Генри Килдерт, он составил дисковую ОС – CP/M. В начале 80-х корпорация IBM разработала ПК IBM PC и начала искать ПО. IBM сразу обратилась к Б. Гейтсу с просьбой получить лицензию на право использования его интерпретатора Basic. Потом попросили его написать ОС. Гейтс создал пакет программ DOS/Basic и пакет был куплен IBM. Гейтс пригласил Т. Патерсона для изменения системы. Первый вариант системы – MSDOS. Паттерсон стал первым сотрудником Microsoft. Самым мудрым оказалось решение Гейтса продать MSDOS компьютерным компаниям для установки вместе с их продуктом, а не конечным пользователям. Microsoft продавала свою версию Unix – XENIX. ОС CP/M, MSDOS и др. полностью основывались на исполнении командной строки. В НИИ Стенфорда был изобретен графический интерфейс пользователя GUI (окна, значки). Наиболее удачная разработка GUI – Apple Macintosh. Компанией Microsoft была разработана оболочка поверх MSDOS –Windows 3.x. В 95г появляется первая полноценная Win 95, в ядро была включена графическая оболочка. В 98 г. выходит Win 98, множество программ для 16р ЦП. Другой ОС была Win NT, в ней полностью переписано ядро. Это целиком 32р система. Популярность получила 4 версия. На определенном уровне NT4.0 совместима с Win 95. Версия NT5.0 была переименована в Win2000. Была выпущена Win Me.
Unix является самой сильной системой для рабочих станций и других компьютеров старших моделей (сетевые серверы). Unix наиболее популярна для высокопроизводительных RISC-процессоров. С середины 80-х начали расти и развиваться сети ПК. В сетевой ОС пользователи знают о существовании многочисленных компьютеров, могут регистрироваться на удаленных машинах и копировать файлы с одной машины на другую. Каждый компьютер работает под управлением локальной ОС и имеет своего собственного локального пользователя. Сетевая ОС немного отличается.
Распределенная ОС: фактически пользователи не беспокоятся о том, где работают программы и где расположены файлы. Распределенные системы позволяют прикладным задачам одновременно обрабатываться на нескольких процессорах, поэтому требуется не простой алгоритм загрузки по организации распараллеливания.