- •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().
39) Системные вызовы sem_init. Его предназначение и параметры.
int sem_init(sem_t*addr,int pshared, unsigned int value);
Функция sem_init - альтернатива функции sem_open. Процесс, использующий sem_init, сначала выделяет область памяти для создаваемого семафора. Эта область памяти может быть разделяемой, если к семафору должны обращаться другие процессы. Адрес этой области передается как значение в аргумент addr функции sem_init. Аргумент pshared имеет значение 1, если семафор должен использоваться несколькими процессами совместно. В противном случае значение этого аргумента - 0. Аргумент init_value содержит целое значение, которое должно быть присвоено семафору как начальное. Это значение не должно быть отрицательным числом.
В случае успешного выполнения данная функция возвращает 0, а в случае неудачи коды ошибок:
• EINVAL превышено максимально возможное количество семафоров в системе;
• ENOSYS аргумент pshared не равен нулю.
40) Системные вызовы sem_getvalue, sem_wait и sem_close. Их предназначение и параметры.
int sem_getvalue(sem_t*idp, int*valuep);
Функция sem_gelvalue позволяет определить текущее значение семафора, указанного аргументом idp. Это значение передается с помощью аргумента valuep. Функция всегда возвращает 0.
int sem_wait(sem_t* idp);
Функция sem_wait уменьшает значение семафора на единицу. Семафор обозначается аргументом idp. Если его значение уже равно нулю, функция sem_wait блокирует вызывающий процесс до тех пор, пока не будут созданы условия для его успешного продолжения. Функция всегда возвращает 0.
int sem_close(sem_t*idp);
Функция sem_close отсоединяет семафор, созданный функцией sem_open. В случае успешного выполнения функция возвращает 0, а в случае неудачи -1.
41) Системные вызовы sem_trywait и sem_unlink. Их предназначение и параметры.
int sem_trywait(sem_t* idp);
Функция sem_trywait похожа на sem_wait, но она неблокирующая и возвращает EAGAIN (если не может уменьшить указанное значение семафора).
int sem_unlink(char* name);
Функция sem_unlink удаляет семафор, созданный функцией sem_open из системы. В случае успешного выполнения функция возвращает 0, а в случае неудачи -1.
42) Системные вызовы sem_post и sem_destroy. Их предназначение и параметры.
int sem_post(sem_t* idp); Функция sem_post увеличивает значение семафора на единицу. Семафор обозначается аргументом idp. В случае успешного выполнения функция возвращает 0, а если увеличение значения семафора приводит к переполнению типа, то возвращается ERANGE.
int sem_destroy (sem_t* idp);
Функция sem_destroy используется с семафорами, созданными функцией sem_init. Она удаляет семафор из системы. В случае успешного выполнения функция возвращает 0, если же на этом семафоре есть заблокированные процессы то возвращается EBUSY.
43.Последовательность вызовов api серверного гнезда.
Серверный сокет предполагает обмен данными с клиентами. В принципе, от клиентской реализации он отличается тем, что способен работать с несколькими клиентами одновременно. На базе серверного сокета можно создавать программы — серверы, которые предоставляют возможность внедрять собственные протоколы верхнего уровня, т. е. реализовывать различные схемы обмена данными.
Socket - Представляет собой ссылку на объект типа TServerWinSocket, который и предоставляет основные сервисы
Server Type - Определяет тип сервера с позиций работы с потоками передачи/приема данных. Значение stNonBlocking - позволяет вести асинхронную работу с сервером посредством операторов чтения/записи.
ThreadCacheSize - Содержит число потоков, которые кэшируются в памяти. Для ускорения работы с клиентами, объект ServerSocket после завершения соединения с клиентом не выгружает из памяти содержимое потоков ввода/вывода с целью последующего их использования при работе с другими клиентами. Данный параметр устанавливает число хранимых в памяти потоков
Active - Определяет — активен ли сокет
Port - Содержит номер сетевого порта, на который установлена служба, работу которой обеспечивает данный сокет
Service - Содержит название службы, точнее — протокола высокого уровня (HTTP, FTP, POP), по которому будет вестись работа. Если используется собственный формат обмена данными, поле можно оставлять пустым