Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OSISP_shpory.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
1.14 Mб
Скачать

1. Метаданные файлов в ос unix (7) – 36

Далее приведены системные вызовы для получения значений метаданных файла:

#include <sys/types.h>

#include <sys/stat.h>

#include <unistd.h>

int stat(const char *path, struct stat *buf);

int fstst(int fd, struct stat *buf);

int lstat(const char *path, struct stat *buf);

Где параметр path – это полный путь к файлу, а fd – открытый файловый дескриптор.

Следует заметить, что системный вызов lstat отличается от stat тем, что он позволяет получить информацию о файле типа символьная ссылка.

При успешном завершении вызовов возвращается 0 и в структуру stat (рассмотренную ниже) помещаются метаданные, а при ошибке возвращается значение -1 и устанавливаются коды ошибок.

struct stat

{

  1. dev_t st_dev; //устройство, на котором хранится файл

  2. ino_t st_ino; //номер inode (индексного дескриптора)

  3. mode_t st_mode; //режимы использования файла

  4. nlink_t st_nlink; //число жестких ссылок

  5. uid_t st_uid; //идентификатор пользователя владельца

  6. gid_t st_gid; //идентификатор группы владельца

  7. dev_t st_rdev; //если этот файл – устройство, то описано устройство, которое файл представляет

  8. off_t st_size; //размер файла в байтах

  9. blksize_t st_blksize; //размер блока для эффективной реализации ввода/вывода

  10. blkcnt_ st_blocks; //число блоков физической файловой системы, которое

занимает файл

  1. time_t st_atime; //время последнего доступа к файлу

  2. time_t st_mtime; //время последней модификации метаданных файла

  3. time_t st_ctime; //время последней изменения файла

}

В случае успеха все три вызова возвращают значение 0 и записывают мета­данные файла в предоставленную им структуру stat. В случае ошибки они воз­вращают -1 и присваивают переменной errno одно из следующих значений:

2. Взаимодействие процессов. Задача взаимного исключения. Вариант 2 (2, 6, 15, 27) – 143

int flag[2];

void P0()

{

while (1)

{

while (flag[1]);

flag[0]=1;

критический интервал 1;

flag[0]=0;

.

}

}

void P1()

{

while (1)

{

while (flag[0]);

flag[1]=1;

критический интервал 2;

flag[1]=0;

.

}

}

void main()

{

flag[0]=0;

flag[1]=0;

parbegin(P0,P1);

}

3. Описание процесса, таблица процесса (6) – 136

ОС можно представить как некий механизм, управляющий тем, как процессы используют системные ресурсы. И т.к. одна из задач ОС - управление процессами и ресурсами, то ОС должна располагать информацию о текущем состоянии каждого ресурса и процесса. Для этих целей ОС создает и поддерживает таблицы с информацией по каждому объекту управления. Общая структура таблиц:

Память

Устройства

Файлы

Процессы

Таблицы

памяти

Таблицы ввода-вывода

Таблицы файлов

Процесс1

Процесс2

Процесс N

Процесс1

Первичные

таблицы процессов

Образ процесса

Таблицы памяти используются для того, чтобы следить за основной и вторичной (виртуальной) памятью. Часть основной памяти резервируется для ОС, остальная доступна процессам.

Эти таблицы включают следующую информацию:

1) объем основной памяти, отведенной процессу;

2) объем вторичной или виртуальной памяти, отведенной процессу;

3) все атрибуты защиты блоков основной и виртуальной памяти;

4) всю информацию, необходимую для управления виртуальной памятью.

Таблицы ввода-вывода.

Используются для управления устройствами ввода-вывода и каналами компьютерной системы. В каждый момент времени устройство ввода-вывода может быть либо свободным, либо отданным в распоряжение какому-либо процессу. Если выполняется операция ввода-вывода, то должна быть информация о состоянии этой операции. Например, какие адреса ОП задействованы в этой операции, кто является отправителем и получателем отправляемой информации.

Таблицы файлов.

В них находится информация о существующих файлах, их расположение на магнитных носителях, текущем состоянии и других атрибутов. В ОС может быть специальная подсистема управления памятью.

Таблицы процессов.

Содержат сведения о процессах, располагая которыми ОС может управлять процессами.

Для эффективного управления информации, которая хранится в таблицах, должны иметься перекрестные ссылки и находится в определенном взаимодействии, особенно в таблицах процессов по отношению к таблицам ресурсам.

Для создания этих таблиц ОС должна иметь информацию о конфигурации вычислительной системы: объем основной памяти, количество и вид устройств ввода/вывода, отнесение портов ввода/вывода к устройствам, информация о внешних устройствах хранения данных и т.п. Эти данные могут создаваться с участием оператора или с помощью специальных программ определения конфигурации вычислительной системы.

БИЛЕТ 7

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]