- •1)Права доступа к файлу
- •2)Родительский процесс, порожденный, «сирота»
- •3)Системные вызовы fork, exec ,wait.
- •4)Файловая система. Системные вызовы mount, umount.
- •5)Файловая система. I-nodes.
- •6)Жесткая и символическая ссылки.
- •7)Схема переходов процесса из состояния в состояние
- •8)Системные вызовы getpid, getppid
- •9)Системный вызов times. Ядерная и пользовательские фазы процессов.
- •10)Программные каналы. Fifo-файлы.
- •11)Очередь сообщений. Последовательность системных вызовов.
- •12) Параметры функции msgget.
- •13)Параметры функции msgsnd.
- •14)Параметры функции msgrcv.
- •15)Параметры функции msgctl.
- •16)Семафоры. Последовательность системных вызовов.
- •17)Параметры функции semget.
- •18)Параметры функции semop.
- •19)Параметры функции semctl.
- •20)Разделяемая память. Последовательность системных вызовов.
- •21)Параметры функции shmget.
- •22)Параметры функции shmat.
- •23)Параметры функции shmdt.
- •24)Параметры функции shmctl.
- •25)Последовательность системных вызовов при работе с socket.
- •26)Потоки стандарта Posix.1c
- •27) Системный вызов pthread_create.
- •28)Системные вызовы pthread_self,exit и sched_yield
- •29) Системные вызовы pthread_join kill
- •30) Взаимоисключающие блокировки. Пример тупиковой ситуации.
- •34)Условные переменные
- •35) Системные вызовы pthread_cond_init, pthread_cond_signal и pthread_cond_timedwait. Их предназначение и параметры.
- •36) Системные вызовы pthread_cond_broadcast, pthread_cond_wait и pthread_cond_destroy. Их предназначение и параметры.
- •38) Системный вызов sem_open. Его предназначение и параметры.
- •39) Системные вызовы sem_init. Его предназначение и параметры.
- •40) Системные вызовы sem_getvalue, sem_wait и sem_close. Их предназначение и параметры.
- •41) Системные вызовы sem_trywait и sem_unlink. Их предназначение и параметры.
- •42) Системные вызовы sem_post и sem_destroy. Их предназначение и параметры.
- •43.Последовательность вызовов api серверного гнезда.
- •44.Последовательность вызовов api клиентского гнезда.
- •45.Последовательность вызовов api дейтаграммного гнезда.
- •46.Предназначение системного вызова socket().
- •47.Предназначение системного вызова bind().
- •48.Предназначение системного вызова listen().
- •49.Предназначение системного вызова accept().
- •50.Предназначение системного вызова connect().
- •51.Предназначение системных вызовов send() и sendto().
- •52.Предназначение системных вызовов recv() и recvfrom().
6)Жесткая и символическая ссылки.
Символическая ссылка - это просто бинарный файл специального вида, который содержит ссылку на основной файл. При обращении к такому файлу система определяет, к какому объекту на самом деле запрашивается доступ, и его обеспечивает.
Жесткие ссылки позволяют иметь для одного файла несколько равноправных имен, причем доступ по ним осуществляется одинаково быстро.
hard soft
не создает i-nodes создает i-nodes
на каталоги может ссылать root может ссылаться на каталоги
нельзя ссылаться на файлы в других ОС можно
7)Схема переходов процесса из состояния в состояние
1) Процесс выполняется в режиме задач(польз. режим)
2) в режиме ядра
3) Процесс не выполняется,но готов к запуску(в оп.памяти)
4) Процесс приостановлен(в оп.памяти)
5) процесс готов к запуску(на диске)
6) процесс приостановлен( на диске)
7) Процесс зарезервирован
8) Процесс вновь создан
9) Процесс вызывает exit
8)Системные вызовы getpid, getppid
pid_t getpid(void)
pid_t getppid(void)
Возвращают идентификаторы текущего(PID) и родительского(PPID) процессов соответственно
9)Системный вызов times. Ядерная и пользовательские фазы процессов.
Каждый процесс может пребывать в двух фазах: системной(ядерной)(внутри тела системного вызоава-его выполняет для нас ядро ОС) и пользовательской(внутри кода самой программы). Время, затраченное процессом в каждой фазе, может быть измерено системным вызовом times().Системный вызов times заполняет структуру:
struct tms{
clock_t tms_utime; //время процесса
clock_t tms_stime; //ядерное время процесса
clock_t tms_сutime; //время детей
clock_t tms_сstime; //ядерное время детей
};
10)Программные каналы. Fifo-файлы.
Программные каналы не имеют имен, и их главным недостатком является невозможность передачи информации между неродственными процессами.
Аббревиатура FIFO расшифровывается как «first in, first out» — «первым вошел, первым вышел», то есть эти каналы работают как очереди. Именованные каналы в Unix функционируют подобно неименованным — они позволяют передавать данные только в одну сторону. Однако в отличие от программных каналов каждому каналу FIFO сопоставляется полное имя в файловой системе, что позволяет двум неродственным процессам обратиться к одному и тому же FIFO.
После создания канал FIFO должен быть открыт на чтение или запись с помощью функции open, либо одной из стандартных функций открытия файлов из библиотеки ввода-вывода (например, fopen). FIFO может быть открыт либо только на чтение, либо только на запись. Нельзя открывать канал на чтение и запись, поскольку именованные каналы могут быть только односторонними.
При записи в программный канал или канал FIFO вызовом write данные всегда добавляются к уже имеющимся, а вызов read считывает данные, помещенные в программный канал или FIFO первыми.
mknode(nameFile, S_IFIFO | 0666, 0) – создает именованный программный канал.