My-library.info
Все категории

Архитектура операционной системы UNIX (ЛП) - Бах Морис Дж.

На электронном книжном портале my-library.info можно читать бесплатно книги онлайн без регистрации, в том числе Архитектура операционной системы UNIX (ЛП) - Бах Морис Дж.. Жанр: Интернет год 2004. В онлайн доступе вы получите полную версию книги с кратким содержанием для ознакомления, сможете читать аннотацию к книге (предисловие), увидеть рецензии тех, кто произведение уже прочитал и их экспертное мнение о прочитанном.
Кроме того, в библиотеке онлайн my-library.info вы найдете много новинок, которые заслуживают вашего внимания.

Название:
Архитектура операционной системы UNIX (ЛП)
Дата добавления:
17 сентябрь 2020
Количество просмотров:
197
Читать онлайн
Архитектура операционной системы UNIX (ЛП) - Бах Морис Дж.

Архитектура операционной системы UNIX (ЛП) - Бах Морис Дж. краткое содержание

Архитектура операционной системы UNIX (ЛП) - Бах Морис Дж. - описание и краткое содержание, автор Бах Морис Дж., читайте бесплатно онлайн на сайте электронной библиотеки My-Library.Info

Настоящая книга посвящена описанию внутренних алгоритмов и структур, составляющих основу операционной системы (т. н. «ядро»), и объяснению их взаимосвязи с программным интерфейсом. Таким образом, она будет полезна для работающих в различных операционных средах. При работе с книгой было бы гораздо полезнее обращаться непосредственно к исходному тексту системных программ, но книгу можно читать и независимо от него.  Во-вторых, эта книга может служить в качестве справочного руководства для системных программистов, из которого последние могли бы лучше уяснить себе механизм работы ядра операционной системы и сравнить между собой алгоритмы, используемые в UNIX, и алгоритмы, используемые в других операционных системах. Наконец, программисты, работающие в среде UNIX, могут углубить свое понимание механизма взаимодействия программ с операционной системой и посредством этого прийти к написанию более эффективных и совершенных программ.

Архитектура операционной системы UNIX (ЛП) читать онлайн бесплатно

Архитектура операционной системы UNIX (ЛП) - читать книгу онлайн бесплатно, автор Бах Морис Дж.

O_APPEND добавляемые данные записывать в конец файла

O_CREAT если файл не существует, создать его; режим создания (mode) имеет тот же смысл, что и в функции creat; если файл уже существует, данный флаг игнорируется

O_TRUNC укоротить длину файла до 0

O_EXCL если этот бит и бит O_CREAT установлены и файл существует, функция не будет выполняться; это так называемое "монопольное открытие"

Функция open возвращает дескриптор файла для последующего использования в других системных функциях.

рausе

pause()

Функция pause приостанавливает выполнение текущего процесса до получения сигнала.

рipе

pipe(fildes)

int fildes[2];

Функция pipe возвращает дескрипторы чтения и записи (соответственно, в fildes[0] и fildes[1]) для данного канала. Данные передаются через канал в порядке поступления; одни и те же данные не могут быть прочитаны дважды.

рlock

#include ‹sys/lock.h›

plock(op)

int op;

Функция plock устанавливает и снимает блокировку областей процесса в памяти в зависимости от значения параметра op:

PROCLOCK заблокировать в памяти области команд и данных

TXTLOCK заблокировать в памяти область команд

DATLOCK заблокировать в памяти область данных

UNLOCK снять блокировку всех областей

рrofil

profil(buf, size, offset, scale)

char *buf;

int size, offset, scale;

Функция profil запрашивает у ядра профиль выполнения процесса. Параметр buf определяет массив, накапливающий число копий процесса, выполняющихся в разных адресах. Параметр size определяет размер массива buf, offset — начальный адрес участка профилирования, scale — коэффициент масштабирования.

рtraсе

ptrace(cmd, pid, addr, data)

int cmd, pid, addr, data;

Функция ptrace дает текущему процессу возможность выполнять трассировку другого процесса, имеющего идентификатор pid, в соответствии со значением параметра cmd:

0 разрешить трассировку потомку (по его указанию)

1,2 вернуть слово, расположенное по адресу addr в пространстве трассируемого процесса с идентификатором pid

3 вернуть слово, расположенное в пространстве трассируемого процесса по адресу со смещением addr

4,5 записать значение по адресу addr в пространстве трассируемого процесса

6 записать значение по адресу со смещением addr

7 заставить трассируемый процесс возобновить свое выполнение

8 заставить трассируемый процесс завершить свое выполнение

9 машинно-зависимая команда — установить в слове состояния программы бит для отладки в режиме пошагового выполнения

read

read(fildes, buf, size)

int fildes;

char *buf;

int size;

Функция read выполняет чтение из файла с дескриптором fildes в пользовательский буфер buf указанного в параметре size количества байт. Функция возвращает число фактически прочитанных байт. Если файл является специальным файлом устройства или каналом и если в вызове функции open был установлен бит O_NDELAY, функция read в случае отсутствия доступных для чтения данных возвратит управление немедленно.

semctl

#include ‹sys/types.h›

#include ‹sys/ipc.h›

#include ‹sys/sem.h›

semctl(id, num, cmd, arg)

int id, num, cmd;

union semun {

 int val;

 struct semid_ds *buf;

 ushort *array;

} arg;

Функция semctl выполняет указанную в параметре cmd операцию над очередью семафоров с идентификатором id.

GETVAL вернуть значение того семафора, на который указывает параметр num

SETVAL установить значение семафора, на который указывает параметр num, равным значению arg.val

GETPID вернуть идентификатор процесса, выполнявшего последним функцию semop по отношению к тому семафору, на который указывает параметр num

GETNCNT вернуть число процессов, ожидающих того момента, когда значение семафора станет положительным

GETZCNT вернуть число процессов, ожидающих того момента, когда значение семафора станет нулевым

GETALL вернуть значения всех семафоров в массиве arg.array

SETALL установить значения всех семафоров в соответствие с содержимым массива arg.array

IPC_STAT считать структуру заголовка семафора с идентификатором id в буфер arg.buf

IPC_SET установить значения переменных sem_perm.uid, sem_perm.gid и sem_perm.mode (младшие 9 разрядов структуры sem_perm) в соответствии с содержимым буфера arg.buf

IPC_RMID удалить семафоры, связанные с идентификатором id, из системы

Параметр num возвращает на количество семафоров в обрабатываемом наборе. Структура semid_ds определена следующим образом:

struct semid_ds {

 struct ipc_perm sem_perm; /* структура, описывающая права доступа */

 int * pad; /* используется системой */

 ushort sem_nsems; /* количество семафоров в наборе */

 time_t sem_otime; /* время выполнения последней операции над семафором */

 time_t sem_ctime; /* время последнего изменения */

};

Структура ipc_perm имеет тот же вид, что и в функции msgctl.

semget

#include ‹sys/types.h›

#include ‹sys/ipc.h›

#include ‹sys/sem.h›

semget(key, nsems, flag)

key_t key;

int nsems, flag;

Функция semget создает массив семафоров, корреспондирующий с параметром key. Параметры key и flag имеют тот же смысл, что и в функции msgget.

semор

semop(id, ops, num)

int id, num;

struct sembuf **ops;

Функция semop выполняет набор операций, содержащихся в структуре ops, над массивом семафоров, связанных с идентификатором id. Параметр num содержит количество записей, составляющих структуру ops. Структура sembuf определена следующим образом:

struct sembuf {

 short sem_num; /* номер семафора */

 short sem_op; /* тип операции над семафором */

 short sem_flg; /* флаг */

};

Переменная sem_num содержит указатель в массиве семафоров, ассоциированный с данной операцией, а переменная sem_flg — флаги для данной операции. Переменная sem_op может принимать следующие значения:

отрицательное если сумма значения семафора и значения sem_op ›= 0, значение семафора изменяется на величину sem_op; в противном случае, функция приостанавливает свое выполнение, если это разрешено флагом

положительное увеличить значение семафора на величину sem_op

нулевое если значение семафора равно 0, продолжить выполнение; в противном случае, приостановить выполнение, если это разрешается флагом

Если для данной операции в переменной sem_flg установлен флаг IPC_NOWAIT, функция semop возвращает управление немедленно в тех случаях, когда она должна была бы приостановиться. Если установлен флаг SEM_UNDO, восстанавливается предыдущее значение семафора (sem_op вычитается из текущей суммы типов операций). Когда процесс завершится, значение семафора будет увеличено на эту сумму. Функция semop возвращает значение последней операции над семафором.

setpgrр

setpgrp()

Функция setpgrp приравнивает значение идентификатора группы, к которой принадлежит текущий процесс, значению идентификатора самого процесса и возвращает новое значение идентификатора группы.

setuid

setuid(uid)

int uid;

setgid(gid)

int gid;

Функция setuid устанавливает значения фактического и исполнительного кодов идентификации пользователя текущего процесса. Если вызывающий процесс исполняется под управлением суперпользователя, функция сбрасывает значения указанных кодов. В противном случае, если фактический код идентификации пользователя имеет значение, равное значению uid, функция setuid делает равным этому значению и исполнительный код идентификации пользователя. То же самое происходит, если значению uid равен код, сохраненный после выполнения setuid-программы, запускаемой с помощью функции exec. Функция setgid имеет тот же смысл по отношению к аналогичным групповым кодам.


Бах Морис Дж. читать все книги автора по порядку

Бах Морис Дж. - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки My-Library.Info.


Архитектура операционной системы UNIX (ЛП) отзывы

Отзывы читателей о книге Архитектура операционной системы UNIX (ЛП), автор: Бах Морис Дж.. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.