Вы находитесь на странице: 1из 24

1. Что такое операционная система (ОС)?

Комплекс программ, обеспечивающих интерфейс между аппаратурой


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

организация эффективной работы аппаратуры компьютера;

обеспечение удобного использования ресурсов компьютера как прикладными


программами, так и пользователем, работающим с компьютером.

2. В чем преимущества и недостатки ОС с разделением времени по


сравнению с пакетными ОС?

+: режим разделения времени, более простые команды (диалог пользователя),


многозадачность, многопользовательская защита

-: переключение процессора между выполняемыми программами требует


времени.

3. Каковы отличительные черты ОС реального времени?

Высокая надёжность

Точная обработка времени

Возможность подключения нестандартных устройств

4. Чем различаются однопользовательские и многопользовательские


ОС?

1: Полный доступ пользователя к ресурсам системы, для изолированных


компьютеров (без сети)

многоП: их важной компонентой являются защита данных и процессов


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

5. Что включается в понятие надежности ОС?

- живучесть - способность сохранять хотя бы минимальную


работоспособность в условиях аппаратных сбоев и программных ошибок

-способность диагностировать и компенсировать хотя бы некоторые типы


аппаратных сбоев
-ОС не должна содержать собственных ошибок

-способность противодействовать явно неразумным действиям пользователя.

6. Что понимается под эффективностью ОС?

Нахождение оптимального баланса между памятью и временем

7. Что означает понятие мобильности ОС?

возможность переноса программы на другую аппаратную платформу, т.е. на


другой тип процессора и другую архитектуру компьютера (потеря
эффективности)

8. В каких случаях происходит переход из режима пользователя в


режим ядра?

При вызове системных функций. Используют системные вызовы, т.е.


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

API-функции - обеспечивают выполнение системной запросов на


обслуживание от программ пользователя.

9. Чем различаются символьные и блочные устройства?

с: наименьшей порцией вводимых данных является один байт.

б: (магнитные диски) наименьшей порцией ввода/вывода является один блок,


равный   байт. Более эффективен для высокоскоростных устройств.

10.Чем различаются устройства последовательного и произвольного


доступа?

Последовательного - существует единственная последовательность данных.

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


данных.

11.Что такое пустое устройство?

Ему не соответствует никакая аппаратура. Драйвер пустого устройства


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

12.На какие основные типы можно подразделить прерывания?

прерывание - сигналы, при поступлении которых нормальная


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

1.аппаратные прерывания от периферийных устройств;

2.внутренние аппаратные прерывания (называемые также исключениями,


exceptions);

3.программные прерывания.

13.В каких случаях внешнее устройство генерирует аппаратное


прерывание?

При переходе периферийного устройства в состояние готовности (нажатие


клавиши)

При возникновении ошибки выполнения операции (отсутствие бумаги в


лотке принтера)

14.Что такое состояние готовности для устройств ввода и для


устройств вывода?

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

15. В чем различие магистральной и радиальной архитектур?

м - основана на подключении всех имеющихся устройств, включая процессор


и память, к единой системной магистрали (шине), которая объединяет в себе
линии передачи данных, адресов и управляющих сигналов.
р - предполагает, что каждое из устройств, включая память, подключается к
процессору отдельно, независимо от других устройств, и взаимодействует с
процессором по собственным правилам.

19. Какой тип ожидания при вводе/выводе используется в


многозадачных ОС?

В многозадачных ОС при вводе/выводе используется пассивное ожидание.

20. Что такое синхронные и асинхронные операции ввода/вывода?

с: запуск операции ввода/вывода и ожидание завершения этой операции.

а: только запуск соответствующей операции.

21. Как можно убедиться, что асинхронная операция завершилась?

Ожидание завершения операции.

Проверка завершения операции.

Назначение процедуры завершения.

22. Для чего используется буферизация ввода/вывода?

такая организация ввода/вывода, при которой данные не передаются


непосредственно с устройства в заданную область памяти, а предварительно
направляются во вспомогательную область памяти, называемую буфером.

Сглаживание неравномерности скоростей процессов Распараллеливание


ввода и обработки Согласование размеров логической и физической записи
Редактирование при интерактивном вводе

23. Для чего используется кэширование дисков?

использование сравнительно небольшой по объему, но быстродействующей


памяти для того, чтобы уменьшить количество обращений к более медленной
памяти большого объема.

24. В чем заключается гипотеза о локальности ссылок?

Если в какой-то момент времени произошло обращение к определенному


участку данных, то в ближайшее время можно с высокой вероятностью
ожидать повторения обращений к тем же самым данным или же к соседним
участкам данных.

25. Что такое «грязный» буфер?


Его содержимое не соответствует данным на диске

26. В чем заключается теоретически оптимальный выбор блока для


вытеснения из кэша?

Число обращений к диску будет минимально, если каждый раз выбирать для
вытеснения тот блок данных, к которому в будущем дольше всего не будет
обращений.

27. В чем заключается алгоритм LRU для дискового кэша?

Он заключается в следующем: выбирать для вытеснения следует тот блок, к


которому дольше всего не было обращений.

Два метода реализации:

Хранение в заголовке время последнего обращения

Связываются все кэш-буферы в линейный список в порядке обращения.

28. В каких случаях выполняется очистка «грязного» буфера?

Выбор блока для вытеснения из кэша.

Закрытие файла, к которому относятся «заполненные» блоки.

Операция принудительной очистки всех буферов либо только буферов,


относящихся к определенному файлу.

29. Почему кэширование записи небезопасно?

кэширование записи небезопасно, потому что есть опасность потери данных


в случае случайных сбоев системы

30. Какую роль играют хеш-цепочки при работе с дисковым кэшем


UNIX?

Используется для ускорения поиска нужного блока.

31.Что такое «свободный блок» в дисковом кэше UNIX?

Блок, которым не владеет ни одна программа и находится в списке


свободных блоков (0 означает свободный блок);

32.Какую роль играет список свободных блоков при работе с


дисковым кэшем UNIX?
используется для определения блока, подлежащего вытеснению.

33.В каких случаях эффективно опережающее чтение блоков диска?

В том случае, если обработка данных ведется последовательным образом,


кэширование не дает значительного эффекта. При обращении к некоторому
блоку диска система, выполнив чтение требуемого блока, считывает затем
еще несколько следующих за ним блоков.

34.Какие задачи решает драйвер устройства?

обеспечить возможность стандартного обращения к любому устройству,


скрывая от остальных частей ОС специфические особенности отдельных
устройств;

добиться максимально эффективного использования всех функциональных


возможностей и особенностей конкретных устройств.

35.Из каких основных блоков состоит типичный драйвер?

заголовок драйвера;

блок стратегии;

блок прерываний.

36.Какие задачи выполняет в BIOS обработчик аппаратного


прерывания от клавиатуры?

во-первых, запоминать текущее состояние клавиатуры: нажаты или нет


«горячие» клавиши Shift, Ctrl, Alt, включены или нет режимы Caps Lock,
Num Lock. Во-вторых, обработчик должен с учетом этого состояния
определить, какой символ хотел ввести пользователь.

37.В чем суть операции низкоуровневого форматирования?

Оно заключается в разметке поверхности на дорожки магнитной записи,


разделенные на секторы.

38.Из чего состоит физический адрес сектора?

номер цилиндра, номер поверхности и номер сектора на дорожке.

39.Что такое расширенные и большие разделы диска?


Большой раздел. Он отличается от обычного тем, что число секторов может
достигать 232-1. Это позволяет описывать большие разделы размером до 2048
Гб.

Расширенный раздел. Его структура аналогична структуре всего жесткого


диска, т.е. начальный сектор раздела – не BOOT, а MBR-сектор. Аналогия не
совсем полная, поскольку таблица разделов в MBR расширенного раздела
может содержать не более двух записей, причем первая из них должна
описывать либо обычный, либо большой раздел, а вторая запись, если она
имеется, описывает еще один расширенный раздел.

40.Что такое специальный файл в UNIX?

Файлы представляющие устройства в Unix, вписанные в каталог файловой


системы наравне с обычными файлами.

41.Что такое метаданные файловой системы?

Все хранящиеся в файловой системе служебные данные, описывающие


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

42.В чем преимущества и недостатки сегментированного размещения


файлов?

+: При создании файла ему обычно вообще не выделяют память, а потом по


мере возрастания размера файла ему могут быть выделены любые свободные
сегменты на диске.

Фрагментация не мешает размещения файла на диске.

-: сильная сегментация файла, что существенно замедляет чтение файла с


диска, особенно при последовательном чтении.

Информация о размещении файла намного сложнее, чем для непрерывного, и


что наиболее неприятно объём этой информации переменный.

43.Что такое сектор и кластер?

сектор диска –минимальная единица обмена данными с дисковыми


устройствами.

Кластер – единица распределения памяти при размещении файлов. 1 кластер


- 2к секторов.

44.В чем преимущества и недостатки больших кластеров?


+: Увеличение размера кластеров позволяет сократить количество данных о
размещении файлов «и в длину, и в ширину»: во-первых, для каждого файла
нужно хранить информацию о меньшем числе кластеров, можно описать
диск большего размера при той же разрядности номеров кластера.

-: Поскольку размер файла можно считать случайной величиной, то можно


приближенно считать, что в среднем половина последнего кластера каждого
файла остается незанятой; Если хотя бы один из секторов, входящих в
кластер, отмечен как дефектный, то и весь кластер считается дефектным, т.е.
не может быть использован.

45.Что такое внешняя и внутренняя фрагментация дискового


пространства?

Внешняя фрагментация - это явление, когда после многократного создания и


удаления файлов разной длины, свободное пространство на диске
оказывается разбитым на небольшие кусочки. Суммарный объем свободного
места на диске может быть достаточно большим, но создать файл
приличного размера не удается, потому что для него нет непрерывной
области нужной длины.

Внутрення фрагментация - это явление, когда в последнем кластере файла


остается незанятое место, в среднем полкластера.

46.Что такое дефрагментация дискового тома?

Это такая процедура, которая перемещает все файлы, размещая их впритык


друг к другу от начала области данных диска.

47.Что такое режим доступа и режим разделения при открытии


файла?

Режим доступа определяет, какие операции сам процесс собирается


выполнять с файлом.

Режим разделения определяет, какие операции данный процесс готов


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

э: процесс разрешает себе и чтение, и запись, а другим процессам временно


запрещает то и другое.

к: устанавливая ее, процесс запрещает только запись всем процессам, в том


числе и себе самому, в то время как чтение остается разрешенным для всех.

48. Чем различаются эксклюзивная и кооперативная блокировки


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

49.На какие области делится диск в системе FAT?

1)BOOT-сектор содержит основные количественные параметры дискового


тома и файловой системы, а также может содержать программу начальной
загрузки ОС.

2)таблица FAT (File Allocation Table) – содержит информацию о


размещении файлов и свободного места на диске. Ввиду критической
важности этой таблицы она всегда хранится в двух экземплярах, которые
должны быть идентичны [1]. Каждая операция, изменяющая содержимое
FAT, должна одинаковым образом изменять оба экземпляра.

3)ROOT – корневой каталог системы, содержащий данные о файлах и о


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

4)Область данных – массив кластеров, содержащий все файлы и все


каталоги (кроме корневого).

50.Что такое FAT?

Файловая система (обычно иерархическая древовидная система). File


Allocation Table

таблица FAT - содержит информацию о размещении файлов и свободного


места на диске.

51.Как отмечаются в FAT свободные кластеры? дефектные


кластеры?

если кластер свободен, то запись содержит все нули.

если кластер дефектный, то запись содержит специальное значение

FF716 для FAT-12 или FFF716 для FAT-16.

52.Что означают числа 12 и 16 в названиях FAT12 и FAT16?

Размером записей в битах в таблице FAT

53.Какие действия выполняются в системе FAT при создании файла?


При создании файла проверяется правильности пути и имени и ищется
свободная запись. Если не хватает кластеров, то дополняются новые
кластеры к каталогу. Найдя свободное место, система заполняет поля записи
о новом файле. Записывается с нулевым размером и нулевым первым
кластером.

54.Какие действия выполняются в системе FAT при удалении файла?

При удалении файла прежде всего по каталожной записи проверяется, можно


ли его удалить (не установлен ли атрибут «только для чтения»), а затем
делаются две вещи:

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


кодом E516 (он отображается как русская буква «х»; вероятно, разработчики
системы FAT считали, что этот код не может встретиться в имени файла);

все записи таблицы FAT, соответствующие кластерам удаляемого файла,


заполняются нулями, т.е. кластеры объявляются свободными.

55.Что такое хэндл файла?

Хэндл — это некоторое число, которое система возвращает пользовательской


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

56.Что такое стандартный ввод и стандартный вывод программы?

Ввод — то откуда читаются данные без указания файла (хендл 0), вывод то
куда выводятся данные без указания файла (хендл 1).

57.В чем отличие системы FAT32 от FAT12 и FAT16?

Размером записей в битах в таблице FAT

Использование 10-байтового резерва (в FAT32 этого нет);

В FAT32 10-байтовый резерв заменили на дату и время создания файла и на


дату последнего доступа.

Размер первого кластера в FAT32 = 4 байтам.

58.Что такое таблицы SFT и JFT?

Таблица SFT (System File Table) содержит записи о всех файлах, в данный
момент открытых программами пользователя и самой ОС. таблицы JFT (Job
File Table) создаются для каждой запускаемой программы, поэтому
одновременно может существовать несколько таких таблиц. Содержит
индексы SFT.
59.Какой смысл имеют числовые значения элементов таблицы JFT?

номер записи в таблице SFT.

60.Что такое жесткие и символические связи в файловой системе


UNIX?

Жесткая связь означает связь между именем файла и самим файлом.


Символическая связь представляет собой файл, который содержит имя
другого файла.

61.Чем отличается структура каталога UNIX от Windows?

MS-DOS — нет жестких связей, явное дерево;

UNIX - жесткие связи, сетевая структура.

62.Что такое монтирование тома в UNIX?

заключается в том, что данный диск отображается на какой-либо из


каталогов основного тома. Как правило, для этого используются пустые
подкаталоги каталога /mount или /mnt.

63.Какие типы файлов различаются в UNIX?

обычный файл, т.е. файл, содержащий данные;

символьный специальный файл, т.е., на самом деле, символьное устройство;

блочный специальный файл;

64.Какие атрибуты файла в UNIX имеют отношение к управлению


доступом?

владелец, группа-владелец, атрибуты защиты данных, флаги режимов (SUID


и SGID) – определяют какие права унаследуют при запуске программа,
хранящаяся в данном файле.

65.Какая информация о файле содержится в записи каталога UNIX?

Каждая запись состоит из 16 байтов, 14 байтов отводится под короткое


символьное имя файла или каталога, а 2 байта — под номер индексного
дескриптора этого файла. В каталоге файловой системы s5 непосредственно
не указывается характеристики файлов. Это позволяет с меньшими затратами
перестраивать систему каталогов. Например, при включении и исключении
файла из каталога идет манипулирование меньшими объёмами информации.
Кроме того, при включении одного и того же файла в разные каталоги не
нужно иметь несколько копий как характеристик, так и самих файлов. С этой
целью в индексном дескрипторе ведется учет ссылок на этот файл из всех
каталогов. Как только число ссылок становится равным нулю, индексный
дескриптор данного файла уничтожается.

66.Какая информация о файле содержится в индексном дескрипторе


файла UNIX?

Индексный дескриптор всех файлов имеют одинаковый размер - 64 байта и


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

67.Что означает право на исполнение для каталога?

Право на исполнение каталога означает возможность читать атрибуты


файлов каталога, использовать эти файлы, а также право сделать данный
каталог текущим.

68.Почему доступ к маленьким файлам в UNIX выполняется быстрее,


чем к большим?

Доступ к большим файлам требует значительно больше времени, чем к


маленьким. В силу структуры информации о размещении файлов. Если
расположение первых 10 кб данных файла записано непосредственно в
индексном дескрипторе, то для того, чтобы прочитать данные, стоящие на 50
мб от начала файла, придётся сперва прочитать третичный, вторичный и
обычный косвенные блоки.

69.Что такое счетчик связей в дескрипторе файла в UNIX?

число каталожных записей, ссылающихся на данный дескриптор.

70.Что содержат косвенные блоки в файловой системе UNIX?

блок в области данных, который содержит номера следующих 256 блоков


файла.

71.Как хранится информация о свободных блоках памяти в файловой


системе UNIX?

Список свободных мест. Массив, причем первый блок содержит адрес


следующего.
72.В чем основные недостатки традиционной файловой системы
UNIX?

ненадежность

низкая производительность

73.Что такое MFT в файловой системе NTFS?

Эта таблица содержит записи обо всех файлах и каталогах, расположенных


на данном томе.

74.Что такое резидентные и нерезидентные атрибуты файла?

Если заголовок атрибута и его значение хранятся в записи таблицы MFT, то


это резидентный атрибут. А если заголовок хранится в таблице записи MFT,
а значение в кластере области данных – то нерезидентные.

75.Что делает функция CreateFile в Windows?

создания нового файла и открытие существующего.

76.Что такое маркер доступа в Windows?

Содержит идентификатор пользователя (SID, Security IDentifier),


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

77.Чем управляют списки DACL и SACL?

Пользовательский список DACL управляет разрешениями и запретами


доступа к данному объекту.

Системный список SACL управляет только аудитом доступа к данному


объекту.

78.Из чего состоит запись ACE?

тип АСЕ, который может быть одним из следующих: разрешение, запрет,


аудит;

Размер

Маска прав доступа (чтение, запись, исполнение)

идентификатор (SID) пользователя или группы, чьи права определяет данная


АСЕ.
Принудительное прекращение процесса, возвращение на контрольную точку,
освобождение ресурсов, перезагрузка.
102. Что такое тупик?

это состояние, в котором «некоторые процессы заблокированы в результате


таких запросов на ресурсы, которые никогда не могут быть удовлетворены,
если не будут предприняты чрезвычайные системные меры».

???

а: Способ ожидания программой некоторого события, основанный на


постоянной циклической проверке ожидаемого условия,

п: такая реализация ожидания, при которой ожидающая программа не


затрачивает процессорного времени, реализуется на базе аппаратных
прерываний.

107. Чем различаются процесс и нить (thread)?

Процесс владеет ресурсами, но сам по себе не работает. Работает нить.


Каждая нить имеет свой стек и очередь сообщений. У процесса может быть
несколько нитей.

108. Что делает функция CreateProcess?

создание нового процесса: при этом указываются атрибуты защиты, адрес


блока защиты флаги создания, флаги класса процесса.

109. Чем различаются в Windows хэндл процесса и идентификатор


процесса?

Хендл — чем может пользоваться, идентификатор — уникальная


характеристика процесса по которой его могут вызывать другие процессы.

110. Что делает функция OpenProcess?

позволяет одному процессу получить хэндл любого другого процесса, указав


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

111. Какие действия может выполнить один процесс по отношению к


другому процессу?

В режиме разделения определяется, какие операции данный процесс готов


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

режим доступа второго процесса не должен противоречить режиму


разделения, установленному первым процессом;

режим разделения, запрашиваемый вторым процессом, не должен запрещать


тот режим доступа, который уже установил для себя первый процесс.

В случае нарушения одного из этих условий система не открывает файл для


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

112. Чем отличаются объекты синхронизации от других типов объектов


Windows?

Объекты синхронизации представляют собой частный случай объектов ядра


Windows. Отличительной особенностью объектов синхронизации является
возможность использовать в качестве аргументов функций ожидания.

113. Что делает функция WaitForSingleObject?

Эта функция ожидает — ждёт перехода объекта в сигнальное состояние.


Указывается хендл объекта синхронизации и временной интервал (Timeout),
в протяжении которого ожидается освобождение объекта.

114. Чем функция WaitForMultipleObjects отличается от


WaitForSingleObject?

WaitForSingleObject -ожидает переход одного объекта (указывается хендл)


WaitForMuItipleObjects - ожидает переход группы объектов (указывается
массив хенделов), указывается флаг ждать всех или ждать одного из.

115. Какие имеются объекты синхронизации в Windows?

Процесс, нить, события, мьютекс(двоичный семафор), семафор, таймер для


ожидания(waitable timer), change notification(уведомление об изменении в
заданном каталоге), консольный ввод.

116. Какое состояние процесса или нити является сигнальным?

Сигнальное состояние — это завершенное состояние.

117. Чем различаются события с ручным сбросом и с автосбросом?


Автосброс — завершается одна функция ожидания, ручной - все функции
ожидания.

118. Какие функции Windows соответствуют семафорным примитивам


P(S) и V(S)?

OpenMultex(P), ReleaseMutex(V)

119. Что такое «брошенный мьютекс»?

Нить захватила мьютекс, а затем завершилась до его освобождения.

120. Для чего используются переменные типа «критическая секция»?

Если требуется синхронизировать работу нитей одного и того же процесса

121. Что такое сообщение (message) в Windows?

Некоторая запись, состоящая из: кому (идентификатор окна получателя), что


(номер сообщения), параметры (IParam wParam), где (координаты на экране),
когда (время сообщения).

122. Что делает функция GetMessage?

Сообщение поступает на обработку из очереди сообщений. Главный


аргумент - адрес структуры для которого выдается сообщение.

123. Какие источники сообщений используются функцией GetMessage?

Эта функция выбирает из очереди сообщение или блокирует нить, если


очередь пуста.

124. Что делает функция Peek Message?

Основное отличие от GetMessage заключается в том, что она позволяет


только проверить наличие сообщения, не выполняя ожидание в случаи их
отсутствия. Кроме того, пользователь может выбирать, следует ли при
выполнении PeekMessage изымать сообщение из очереди или нужно пока
оставить его там.

125. Чем различаются синхронная и асинхронная посылка сообщения?

Cинxpoннaя(SendMassage) - отправитель блокируется до получения ответа


или до получения ReplyMessage, обробатывается раньше асинхронных
Асинхронная(PostMassage)- продолжает работу.

126. Что делает функция fork в UNIX?


Клонирование процесса, вызвавшего её.

Системный вызов в Unix-подобных операционных системах, создающий


новый процесс (потомок), который является практически полной копией
процесса-родителя, выполняющего этот вызов.

127. Что такое pid процесса в UNIX?

Идентификатор процесса - целое число, уникальное для каждого процесса в


системе. В ОС семейства Windows pid хранится в переменной
целочисленного типа.

128. Что делает функция exit в UNIX?

Используется для нормального завершения процесса

Завершаемый процесс, как правило, выполняет очистку используемой


памяти.

129. Что делает функция wait в UNIX?

Возвращает pid завершившегося потомка, а в переменной Status передаёт код


завершения.

Обе функции, и wait, и waitpid, возвращают два значения. Возвращаемое


значение каждой из этих функций — это идентификатор завершенного
дочернего процесса, а через указатель statloc передается статус завершения
дочернего процесса (целое число). Для проверки статуса завершения можно
вызвать три макроса, которые сообщают нам, что произошло с дочерним
процессом: дочерний процесс завершен нормально, уничтожен сигналом или
только приостановлен программой управления заданиями (job-control).
Дополнительные макросы позволяют получить состояние выхода дочернего
процесса, а также значение сигнала, уничтожившего или остановившего
процесс.
Если у процесса, вызывающего функцию wait, нет завершенных дочерних
процессов, но есть один или несколько выполняющихся, функция wait
блокируется до тех пор, пока первый из дочерних процессов не завершится.

130. Что такое процесс-«зомби»?

Фактически от процесса остаётся лишь запись в таблице процессов,


содержащая код завершения и информацию о затраченном процессном
времени. Все ресурсы, занимавшиеся процессом, освобождаются.
дочерний процесс в Unix-системе, завершивший своё выполнение, но ещё
присутствующий в списке процессов операционной системы

131. Что такое программный канал в UNIX?

Программный канал «притворяется файлом», для работы с ним используются


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

Это один из методов межпроцессного взаимодействия. Именованный канал


позволяет различным процессам обмениваться данными, даже если
программы, выполняющиеся в этих процессах, изначально не были написаны
для взаимодействия с другими программами. Это понятие также существует
и в Microsoft Windows, хотя там его обозначение существенно отличается. 

132. Какие виды реакции на сигнал возможны в UNIX?

По умолчанию, игнорировать, обработать.


Обработка. Обработчик по умолчанию для большинства сигналов завершает
выполнение процесса. Для альтернативной обработки всех сигналов, за
исключением SIGKILL и SIGSTOP, процесс может назначить свой
обработчик или игнорировать их возникновение модификацией своей
сигнальной маски. Единственное исключение — процесс с pid 1 (init),
который имеет право игнорировать или обрабатывать любые сигналы,
включая KILL и STOP.

133. Что такое приоритеты ядра в UNIX?

Процессы, работающие в режиме ядра, не могут быть вытеснены, поэтому


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

134. Чем отличается в языке shell запись “A=B” от “A=$B”?


В первом случае мы переменной "A" присваиваем символ "B", а во втором
случае - переменной "A" присваиваем значение переменной "B".

135. Что означают разделители списка команд “;”, “&&”, “||”, “|”, “&”?

; - команды, разделенные этим знаком, выполняются последовательно.

&& - следующая операция будет выполняться только в том случае, если


предыдущая выполнилась корректно.

|| - следующая операция будет выполняться только в том случае, если


предыдущая не выполнилась корректно.

| - знак конвейера (несколько команд, разделенных этим знаком)

& - поразрядная конъюнкция

136. Чем конвейер отличается от списка команд?

Конвейер означает параллельное выполнение нескольких команд с передачей


данных по мере их обработки от одной команды к следующей, как на
заводском конвейере.

Список означает последовательное выполнение команд.

137. Что такое фоновое выполнение команды в UNIX?

Фоновый процесс выполняется только тогда, когда спит оперативный


процесс. При активизации оперативного процесса происходит немедленное
вытеснение фонового, т.е. оперативный процесс имеет более высокий
абсолютный приоритет. Обычно при такой дисциплине предполагается, что
активизация оперативного процесса не потребует много процессорного
времени, так что выполнение фонового процесса будет скоро возобновлено.

138. Что такое физические и виртуальные адреса?

Виртуальный – адрес, написанный в программе (определённая ячейка,


сегмент, смещение)

Физические — адреса ячейки памяти на шине адресов.

139. Когда и каким образом может выполняться замена виртуальных


адресов физическими?

При переключении текущего процесса система просто изменяет адрес


используемой таблицы страниц, тем самым полностью изменяя отображение
виртуальных адресов на физические.
140. Чем различаются позиционно-независимые и перемещаемые
программы?

Позиционно-независимые – правильно работают на любых адресах.

Перемещаемые – требуют настройки адресов при загрузке в память.

141. Что такое распределение памяти с фиксированными разделами?

При этом способе распределения памяти администратор системы заранее,


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

142. Что такое распределение памяти с динамическими разделами?

При такой организации памяти никакого предварительного разбиения не


делается. Вся имеющаяся память рассматривается как единое пространство, в
котором размещаются загруженные программы. Когда возникает
необходимость запустить еще одну программу, система выбирает свободный
фрагмент памяти достаточного размера и выделяет его в качестве
«динамического раздела» для данной программы.

143. Какую информацию содержит таблица сегментов процесса?

Такая таблица содержит для каждого сегмента его размер, режим доступа
(только чтение или возможна запись), флаг присутствия сегмента в памяти,
флаг “грязный” (если возможна запись). Если сегмент находится в памяти, то
в таблице хранится его базовый адрес (адрес физической памяти,
соответствующий началу сегмента).

144. Чем различаются фиксированные и перемещаемые сегменты?

В случае с перемещаемыми сегментами, программа не может обращаться к


адресам в таком сегменте, поскольку его местоположение не определено.

Фиксированный сегмент – не должен перемещаться в память.

145. Чем различаются сегментная и страничная организация


виртуальной памяти?

Размер сегмента выбирает программист или компилятор, размер страничный


фиксированный (например, 4 Кб)

146. Как обеспечивается изоляция процессов при использовании


страничной адресации?
Изоляция процессов обеспечивается тем, что ОС не должна отображать
страницы разных процессов на одну и ту же физическую страницу
(страничный фрейм).

147. В чем заключается процесс подкачки страниц по требованию?

Для увеличения количества работающих процессов переодически на жёсткий


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

148. Почему алгоритм LRU мало пригоден для выбора вытесняемой


страницы памяти?

Потому что при каждом обращении к кэш-буферу этот буфер должен


переставляться в конец очереди (это медленно).

149. Возможна ли фрагментация физической памяти при сегментной


организации? А при страничной?

При страничной организации фрагментация невозможно, потому что


страницы памяти имеют одинаковый размер, а сегменты -нет.

150. Какой размер сегмента программы используется в Windows?

Формально же теперь все адресное пространство пользователя укладывается


в один очень большой сегмент размером 4 Гб.

151. Что означают операции RESERVE и COMMIT при выделении


региона памяти?

Резервирование региона памяти (MEM_RESERVE) означает всего лишь то,


что диапазон виртуальных адресов, соответствующих данному региону, не
будет использован ни под какие другие цели, система считает его занятым.
Это как резервирование авиабилета: вы пока что не владеете билетом, но и
никому другому его не продадут. Попытка программы обратиться к адресу в
зарезервированном, но не переданном регионе приведет к ошибке.

Передача физической памяти (МЕМ_СОММ1Т) означает, что за каждой


страницей виртуальной памяти региона система закрепляет... нет, вовсе не
страницу физической памяти, как можно подумать. Закрепляется блок
размером 4 Кб в страничном файле. В таблице страниц процесса переданные
страницы помечаются как отсутствующие в памяти.

152. Какие действия с памятью выполняются при запуске EXE-файла?


При запуске программы Windows резервирует достаточное количество
виртуальных страниц и закрепляет за ними блоки ЕХЕ- файла При этом нет
необходимости выполнять такое действие, как «загрузка» программы в
традиционном смысле. Чтение кодов программы выполняется по мере
необходимости, согласно общему принципу загрузки страниц по
требованию.

153. В каких случаях используется копирование при записи?

Как правило, текст программы не подвергается изменениям в ходе ее


выполнения. Это означает, что соответствующие виртуальные страницы
остаются «чистыми» и при их вытеснении нет необходимости в записи на
диск. Если один и тот же исполняемый файл используется одновременно
несколькими процессами (что вполне возможно для ЕХЕ-файла в случае
запуска нескольких экземпляров программы, а для DLL-файлов является
правилом), то на один и тот же файл отображаются виртуальные страницы
каждого из этих процессов. При этом вполне возможно, что в таблицах
страниц разных процессов один и тот же исполняемый файл будет
соответствовать разным диапазонам виртуальных адресов.

Проблема возникает в том случае, если по логике работы программы должна


выполняться запись в некоторые страницы памяти, соответствующие
исполняемому файлу. Это нормальное явление, поскольку в состав ЕХЕ-
файла могут входить области памяти, отведенные для статических
переменных программы. Очевидно, нельзя позволить программе изменять
свой собственный файл только потому, что изменились значения переменных
Тем более, если файл используется сразу в нескольких процессах и в каждом
из них переменные принимают разные значения. Выход, используемый
Windows NT в этой ситуации, заключается в следующем. Все виртуальные
страницы, соответствующие выполняемому файлу, выделяются со
специальным атрибутом доступа PAGE WRITECOPY, т.е. «копирование при
записи».

Если запускаемый ЕХЕ-файл находится на дискете, то система сразу


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

154. Что такое отображение файла данных в память?

Из сказанного вытекает, что отображение файла на память представляет


собой оригинальный способ работы с файлами, при котором вместо явного
чтения и записи данных программа ведет себя так, как если бы файл уже
находился в памяти. Это действительно так, но это еще не все.
Если два процесса работают с одним и тем же объектом «отображение
файла» и участки файла, которые они отображают в свою память, хотя бы
частично пересекаются, то Windows гарантирует, что любые изменения
данных, сделанные на этом участке одним процессом, сейчас же становятся
доступными другому процессу. Таким образом, два процесса фактически
работают с общей областью памяти

155. Для чего используется отображение файла без указания


конкретного файла?

Отображение файлов можно рассматривать как одно из средств


взаимодействия процессов, позволяющее под контролем системы преодолеть
изоляцию памяти процессов.

Самое забавное, что файл-то здесь и не обязателен. Если при создании


объекта «отображение файла» в качестве хэндла файла указано специальное
значение FFFFFFFF16, то Windows связывает страницы памяти с блоками
страничного файла. В этом случае объект может использоваться только как
средство обмена данными между процессами, без привязки к конкретному
файлу. При закрытии объекта «отображение файла» его данные в этом случае
не сохраняются.

156. Что такое куча и для чего она используется?

Куча - обычный механизм динамического выделения/освобождения


небольших участков памяти. Каждый процесс при создании получает себе в
распоряжение собственную кучу.

Вам также может понравиться