
- •Ос в общей структуре компьютера.
- •История операционных систем.
- •Классификация современных ос. Задачи современных ос.
- •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.Подсистема ввода/вывода. Схема взаимодействия подсистем ос. Понятие драйвера. Типы драйверов.
12. История ос unix.
2х задачная, т.е. на 2 терминала. Позднее была расширена.
UNICS называлась сначала. К Томпсону в процессе разработки присоединился математик Ричи. До этого использовали язык BCPL «B» => C
1973г. появилась версия Unix на языке С. След. шаг перенос ее на нов. архитектуру это был переносимый компилятор языка С.
BSD Билл Джой.
1984 г. с компании NTNT были сняты антимонопольные ограничения и менеджер компании начин. коммерциализацию Unix. Тяжбы до 90х г.
I386 был пригоден для Unix.
В 1991г. финн. студент Линус Торвальдс начал работу над ядром Unix подобн. ОС для I386 причем в этой работе код др. ОС не сипользовался. Получилась нов. ОС, кот. получила название Linux по его имени. официальн. версия 94г.
Сейчас Unix подобн. ОС: Linux и FreeBSD распространяем. свободно. Коммерч. Unix системы Солярис. Появл. стандарт Озикс, описывающ. осн. системные вызовы Unix и созданный по принципу пересечения осн. ветвей Linux. Дальше была создана графич. настройка.
Хар-ка ОС.
ясность и переносимость.
затраты, система на С 20-40% больше размер и производительность около 20% ниже, чем для ассемблера.
модифицируемость. код системы изначально распростр. в виде исх. текстов => легко вносить изменения.
модульность. Каждый пользователь может сделать свою сборку и дополнить ее своими модулями.
многозадачность
стандартизация
универсальность – бол. кол-во приложений.
13. Общая архитектура unix. Основные подсистемы ядра.
Ядро и 2ой уровень вокруг него.
Ядро
непосредственно взаимодействует с
аппаратн. частью, тем самым изолируя
прикладные прог-ы от особенностей
архитетуры. Ядро имеет набор услуг,
предоставляемые прикладным прог-ам:
-операции в/в
-создание и управл-е процессами и их синхронизация, межпроцессорное взаимодействие.
Все приложения запрашивают эти услуги посредством системн. вызозов.
2ой уровень: системн. и прикладные задачи.
Несмотря на внешн. разнородность схемы взаимод-я с ядром приложений единообразны. Ядро обеспечивает базов. функциональность ОС:
-создает процессы и управл. ими
-распределяет память
-обеспечивает доступ к файлам и переферийн. уст-вам.
Др. программы.
Системн. вызов явл. точкой входы прог-ы в ядро, при выполнении вызова прог-а пользователя временно переходит в привилигирован. режим и т.о. получает доступ к уст-вам, кот. были недоступны в пользовательском режиме.
В инт-се системн. вызовов определен. формат запросов на услуги. Для процесса системн. вызов внешне похож на обычн. вызов библиотечн. ф-ции. Пр. напишем прог-у, кот. откр. файл, читает данные и закрыв. файл.
Операция откр-я, чтения и закрытия должны выполняться ядром по запросу системн. вызовов open, read, close.
#include <sys.types.h>
#include <sys/stat.h>
#include <fsntl.h>
main()
//главная функция
{int fd; //величина целого типа, файлов. дискриптор
char buf[80]; //строка, массив символов (buf - указатель)
//исполняемые операторы
fd= open(“file1”,O_RDONLY); //(fd – логич файл в Object Pascal)
read(fd,buf,sizeof(buf)); //считывает в буфер 80 сиволов
close(fd);
}
Структура ядра.
Ядро сост. из осн. 3 подсистем(п/с):
1.файловая п/с.
2. п/с управл-я процессами и памятью.
3. п/с в/в.
1. Обеспечив. унифицировн. интерфейс доступа к данным, расположен. на дисковых носителях, а также переферийн. уст-вах. Т.е. одни и те же ф-ции отрытия, чтения, записи можно использовать при чтении, записи на диск, в/в на принтер или терминатор(?).
Файлов.
подсистема контролир. права доступа к
файлу, выполн. размещение и удаление
файла. Права доступа к файлам определяет
привилегии пользователя в системе.
Файлов. п/с обеспечивает перенаправление
запросов, адресован. переферийн. уст-вам,
перенаправляют в соотв. модули подситемы
в/в.
2. Запущен. на выполнение прог-а порождает в системе 1 или более процессов. Она контролирует:
-создание, удаление процессов
-контроль ресурсов
-контролируется синхрониз-я процессов
-межпроцессорное взаимодействие
ОС управляет доступом процессов к вычислит. ресурсам. При этом создается впечатление выполнения неск. задач. Спец. задача ядра, называемая планировщиком процессов scheduler, кот. разрешает конфликты между процессами в конкуренции за системн. ресурсы. Планировщик запускает процесс на выполнение, следя за тем, чтобы процесс монопольно не захватил ресурс. Процесс освобождает ресурс по происшествии кванта времени или ожидая длит. операцию в/в. тогда планировщик выбирает след. процесс с наивысшим приоритетом.
Модуль управления памятью обеспечивает размещение ОП для прикладных задач. Если для всех процессов недостаточно памяти, то ядро осущ. подкачку страниц.
Чтобы использовать вирт. память FreeBSD перемещает все неиспользуемые страницы памяти на диск. При запросе на откачиваемые данные осуществляется перемещение страницы в памяти, т.е. подкачка. Область диска, куда подкачиваются страницы назыв. разделом подкачки. Модуль межпроцес. взаимодействия отвечает за уведомления процессов с помощью сигналов и обеспечивает возможность обмена данными между различными процессами.
3. Выполн. запросы файловой подсистемы и подсистемы управления процессами для доступа к периферийным устройствам. Обеспечивается буферизация и взаимодействие с драйверами устройств.
Драйвер – спец. модуль ядра, непосредственно обслуживающ. внешнее устройство.