
- •Ос в общей структуре компьютера.
- •История операционных систем.
- •Классификация современных ос. Задачи современных ос.
- •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.Подсистема ввода/вывода. Схема взаимодействия подсистем ос. Понятие драйвера. Типы драйверов.
33.Сигналы как средство взаимодействия процессов в ос unix. Диспозиция сигналов.
Сигнал - способ передачи уведомления о некотором произод событии между процессами, при котором нарушется нормальное вып процесса.
Кажд сигнал имеет уник симв имя и соотв ему номер. Имена стандартиз, а номера завис от архитектруры. Сигнал мб отправлен ядром или другим процессом.
#include <signal.h>
Int kill(pid_t, int sig);
Если пид >0 то это номер процесса, если =-1, то всем процессам.
Если Pid<-1, то посылает группе процессов. Если Pid=0, то посылает всем процессам своей группы , кроме себя.
UID=0 – суперпользователь, млгут отпр сигналы любым проц, а остальные – только процессам, принадл тому же пользователю.
SIGTERM – заверш проц( можно перехв или игнорир)
SIGTKILL(9) – заверш проц( нельзя игнорир)
CTRL-ALT-DEL –расс всем процесаама сначала TerM, а через 5 сек КИЛЛ, чтобы они успели привести дела в порядок.
SEGV(наруш защ пам),PPE (дел на 0) система рассылает процессам, кот вызвали прерывание. Эти сигналы уничт процесс с созд core файла (дамп памяти)
SIGSTOP (ctrl-z) Нельзя перехв и игнор.
SIGCONT – перехв можно
SIGCHILD – отпр родит проц при заверш дочерн процесса.
SIGALARM – будильник (отправитель ОС)
SIGUSR1,2 – можно программить, по умолч – заверш.
Игнорирование
Перехват – программная обработка функцией обработчтком.
П умолчанию.
Измнение диспозиции сигнала с помошью Signal()
#include <signal.h>
Void (*signal(int sig,void(*disp)(int)) disp:
SIG_IGN – игнор
SIG_DFL – по умолч
Собств функция-обработчик
Volatile static int i=0;
Const char message[]=””;
Void handler(int)
{signal (SIGINT,handler);
I++;
Write(1,meassage,sizeof(meassage-1))};
Int main()
{Signal(SIGINT,handler)
While(i<25);pause();return(0);
{signal(SIGINT,handler);
Signal(SIGUSR1,SIG_DFL);
Signal(SIGUSR2,SIG_IGN);}Имеем диспозиц 3х сигналов.
34.Ограничения для процесса в ос unix (по ресурсам). Связь со свойствами процесса.
Каждый процесс имеет огранич на ресурсы. Для получения инфы о текущем огранич и их изменении:
<sys/time.h> <sys/resurce.h>
Int getrlimit(int resource,struct rlimit*rep);
Int setrlimit( ) – изменение
Struct rlimit:
Rlim_t rlim_cur; soft текущее огранич
Rlim_t rlim_max; hard
Любой процесс может изменть от cur До max.
Ограничения установл при инициализ системы и наследуются процессом.
Обычный процесс может только уменьшать, а суперпользователь и увеличивать.
Hard можно увеличивать до бесконечности( RLIM_INFINITY)
Планирование процессов. Обработка прерываний таймера; «будильники» (алармы).
Планирование процессов:
Обеспечение поочередного доступа процессов к одному процессору.
Устанавливается задержка от 100 до 200 мс.
Фоновое приложение – не требует вмешательства пользователя.
Важно минимизировать суммарное время выполнения в системе..
Реального времени – нужны опред ограничения на время обработки кадра.
Задача – нах золотой середины( макс производительность)
Обработка прерываний таймера
Генерирует прерывания с интервалом 10мс (тик) HZ=100 – Опред в param.h
Обработчик прерываний ядра вызывается аппаратным прерыванием таймера, приоритет которого самый высокий. Обраб прерывания должна заним минимальное количество времени. Обработчики:
Обновление статистики использования CPU для текущ процесса.
Планировщик процессов (пересчет приоритета , проверка истчения временного кванта для процесса) Если превышена процессорная квота, то посыл сигнал SIGEXCPU
Обновление системного времени, обработка отложенных вызовов, обработка будильников.
Часть задач раегирует только на главный тик (кажд 4 тика). Отложенный вызов – определяет функцию, вызов котрой будет произведен системой через некот время.
Int co_ID = timeout
(void(*fn)(); caddr_t arg адрес функции, long delta через дельта тиков);
Ядро ОС производит вызов функции fn в системном контексте (она не дожна нах в состоянии ожидания)
Обработка отложенного вызова запускается после обработки прер таймера.
Хранится в системной таблице отложенных вызовов( просмотр кажд тик)
Будильники:
Процесс может попросить ядро отправить сигнал SIGALRM себе через некотрое время.
Для установки таймера реального времени:
Int alarm( unsigned int seconds)
- Вернет 0 если не было заказа.
- Если был, то вернет количество секунд до посылки сигнала. Новый заказ отменит старый и установит свой.