Архитектура системы UNIX, общее описание, модель безопасности - Программирование, компьютеры и кибернетика курсовая работа

Главная
Программирование, компьютеры и кибернетика
Архитектура системы UNIX, общее описание, модель безопасности
Особенности и свойства операционной системы UNIX, ее история, файловая структура, функции и отличия от других. Архитектура ядра системы. Понятия диспетчеризации, прерываний, системного времени (таймера), кеша. Проблема построения многопроцессорных систем.
посмотреть текст работы
скачать работу можно здесь
полная информация о работе
весь список подобных работ
Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
В данной курсовой работе дается общий обзор операционной системы UNIX. Прежде всего, рассматривается история системы, а также причины ее популярности в настоящее время.
Все пользователи ОС UNIX так или иначе наверняка работают с файлами. В данной работе рассматривается древовидная файловая структура UNIX.
Затем следует описание структуры ядра данной операционной системы, модели безопасности, вводятся понятия диспетчеризации, прерываний, системного времени (таймера), кеша, а также рассматривается проблема построения многопроцессорных систем.
Операционная система UNIX - это многопользовательская система с разделением времени. Сеанс в этой системе всегда начинается с авторизации. Причем, это правило универсально и не зависит от того, где именно (к примеру, на рабочей станции / интернет - сервере) запускается версия UNIX. В этом и заключается одно из ключевых отличий UNIX от других операционных систем. Одно из, но не единственное. UNIX находится на вершине самых популярных в мире операционных систем благодаря тому, что ее сопровождает и распространяет большое число компаний. Существуют версии UNIX для многих систем, начиная от персонального компьютера, до суперкомпьютеров, таких как Cray Y-MP.
Цель курсовой работы состоит в изучении общей структуры системы, выделении и развитии ее ключевых особенностей и свойств, понимание которых позволит сложить комплексное впечатление о системе UNIX.
Задачи: - раскрыть понятие операционной системы, ее функции и отличия от других;
- рассмотреть архитектуру ядра системы; - ознакомиться с классической моделью безопасности UNIX и UNIX - like ОС;
- рассмотреть технические особенности построения многопроцессорных систем на базе рассматриваемой системы;
UNIX (читается юмникс) -- семейство переносимых, многозадачных и многопользовательских операционных систем.
Система Multics. В 1965 году компания Bell Telephone Laboratories, объединив собственные труды с фирмой General Electric и проектом MAC Массачусетского научно-технического ВУЗа, обратилась к исследованию новейшей операционной системы, получившей имя Multics. Перед системой Multics были поставлены разнообразные цели, среди которых - обеспечить одновременный доступ к ресурсам ЭВМ множества пользователей, обеспечить необходимую скорость вычислений и хранение данных и дать возможность пользователям при необходимости коллективно использовать данные. Многие создатели, позднее участвовавшие в разработке ранних версий системы UNIX, приняли участие в работе над системой Multics в организации Bell Laboratories. В попытке усовершенствовать среду программирования, Кен Томпсон, Дэннис Риччи и некоторые другие сотрудники Исследовательского центра по информатике создали на бумаге проект файловой системы, который позднее получил развитие в ранних версиях UNIX.
Позднее, Томпсон получил доступ к малоиспользуемой машине под названием PDP - 7, что позволило ему изучить ее и выполнить свой проект системы, включавший в себя начальную версию файловой системы, систему обеспечения управления процессами и скудный набор утилит. Новая система получила название UNIX (аналогия с Multics). Придумал это название еще один сотрудник Исследовательского центра - Брайн Керниган.
Для работы в реальном проекте (обработка текстов) в 1971 году система была перенесена на машину PDP - 11.
В 1973 году система была переписана с использованием языка С, имеющего возможность генерировать машинный код, объявлять типы о определять структуру данных. Популярность системы быстро росла и уже к 1977 году количество машин, работавших под ее управлением, приближалось к 500.
UNIX оказалась простой и понятной для большинства разработчиков, благодаря чему начали развиваться самостоятельные направления системы. В течение 1977 - 82 годов фирма Bell Lab., объединив несколько наиболее удачных вариантов, выпустила UNIX версии 3. С 1983 года начала распространяться версия 5.
Популярность и востребованность системы во многом объясняются следующими особенностями:
· Система написана на языке высокого уровня, благодаря чему ее легко читать, понимать, изменять и переносить на другие машины. Первый вариант системы на Си имел на 20-40 % больший объем и работал медленнее по сравнению с вариантом на ассемблере, однако преимущества использования языка высокого уровня намного перевешивают недостатки.
· Наличие довольно простого пользовательского интерфейса, в котором имеется возможность предоставлять все необходимые пользователю услуги.
· Наличие элементарных средств, позволяющих создавать сложные программы из более простых.
· Наличие иерархической файловой системы, легкой в сопровождении и эффективной в работе.
· Обеспечение согласования форматов в файлах, работа с последовательным потоком байтов, благодаря чему облегчается чтение прикладных программ.
· Наличие простого, последовательного интерфейса с периферийными устройствами.
· Система является многопользовательской, многозадачной; каждый пользователь может одновременно выполнять несколько процессов.
Последовательность и простота вообще являлись и являются характерными для систем UNIX и UNIX - like.
Система UNIX не монолитна. Операционная система взаимодействует с аппаратурой непосредственно, обеспечивая обслуживание программ и их независимость от деталей аппаратной конфигурации. Если представить систему состоящей из пластов, в ней можно выделить системное ядро, изолированное от пользовательских программ. Поскольку прикладные программы не зависят от аппаратного устройства исполняющей их машины, то они могут быть перенесены из одной системы в другую (учитывая, что в этих программах не предусмотрена работа с некоторым точно определенным оборудованием).
Программы, подобные командному процессору shell, взаимодействуют с ядром при помощи хорошо определенного набора обращений к операционной системе. Обращения к операционной системе понуждают ядро к выполнению различных операций, которых требует вызывающая программа, и обеспечивают обмен данными между ядром и программой. Другие прикладные программы располагаются выше указанных программ, на верхнем уровне.
Многие прикладные программы, редакторы, программные пакеты и т.п. со временем становятся синонимичны понятию “система UNIX”. Однако, следует иметь ввиду, что все они пользуются ресурсами программ нижнего уровня и, в конечном счете, ядра. Т.е. в каноническом, наиболее правильном варианте понимания, к словам “система UNIX” относится именно ядро.
Для того, чтобы перевести систему из неактивное состояние в активное, администратор выполняет процедуру "начальной загрузки". На разных машинах эта процедура имеет свои особенности, однако во всех случаях она реализует одну и ту же цель: загрузить копию операционной системы в основную память машины и запустить ее на исполнение.
В системе UNIX процедура начальной загрузки заканчивается считыванием с диска в память блока начальной загрузки (нулевого блока). Программа, содержащаяся в этом блоке, загружает из файловой системы ядро ОС (например, из файла с именем "/unix" или с другим именем, указанным администратором). После загрузки ядра системы в память, ядро запускается на выполнение.
Рассмотрим ключевые особенности данной системы, в первую очередь полезные для общего понимания UNIX/
· согласованной обработкой массивов данных,
· возможностью создания и удаления файлов,
· трактовкой периферийных устройств как файлов.
Файловая система представляет собой дерево, с единственной основой - корнем (root), обозначающимся как “/”.
Каждая вершина в древовидной структуре файловой системы, кроме листьев, является каталогом файлов, а файлы, соответствующие дочерним вершинам, являются либо каталогами, либо обычными файлами, либо файлами устройств.
Каталоги похожи на обычные файлы в том смысле, что система представляет информацию в каталоге набором байтов, но эта информация включает в себя имена файлов в каталоге в объявленном формате.
Права доступа определяются установкой трех остальных флагов (битов разрешения) на файлах для 3 - х действий: чтение, запись, выполнение. (rwe) Делается эта установка для 3 - х разных случаев: для владельца файла, для общего пользования и для прочих случаев.
Для пользователя система UNIX трактует устройства так, как если бы они были файлами. Устройства, для которых назначены специальные файлы устройств, становятся вершинами в структуре файловой системы. Обращение программ к устройствам имеет тот же самый синтаксис, что и обращение к обычным файлам; семантика операций чтения и записи по отношению к устройствам в большой степени совпадает с семантикой операций чтения и записи обычных файлов. Способ защиты устройств совпадает со способом защиты обычных файлов.
Программой называется исполняемый файл, а процессом называется последовательность операций программы или часть программы при ее выполнении. В системе UNIX может одновременно выполняться множество процессов (эту особенность иногда называют мультипрограммированием или многозадачным режимом), при чем их число логически не ограничивается, и множество частей программы (такой как copy) может одновременно находиться в системе. Различные системные операции позволяют процессам порождать новые процессы, завершают процессы, синхронизируют выполнение этапов процесса и управляют реакцией на наступление различных событий. Благодаря различным обращениям к операционной системе, процессы выполняются независимо друг от друга.
Возможный набор состояний процесса содержится в следующем перечне:
1. Процесс выполняется в режиме задачи.
2. Процесс выполняется в режиме ядра.
3. Процесс не выполняется, но готов к запуску под управлением ядра.
4. Процесс приостановлен и находится в оперативной памяти.
5. Процесс готов к запуску, но программа подкачки (нулевой процесс) должна еще загрузить процесс в оперативную память, прежде чем он будет запущен под управлением ядра.
6. Процесс приостановлен и программа подкачки выгрузила его во внешнюю память, чтобы в оперативной памяти освободить место для других процессов.
7. Процесс возвращен из привилегированного режима (режима ядра) в непривилегированный (режим задачи), ядро резервирует его и переключает контекст на другой процесс.
8. Процесс вновь создан и находится в переходном состоянии; процесс существует, но не готов к выполнению, хотя и не приостановлен. Это состояние является начальным состоянием всех процессов, кроме нулевого.
9. Процесс вызывает системную функцию exit и прекращает существование. Однако, после него осталась запись, содержащая код выхода, и некоторая хронометрическая статистика, собираемая родительским процессом. Это состояние является последним состоянием процесса.
Диспетчеризация процессов в системе UNIX
В системе разделения времени ядро предоставляет процессу ресурсы центрального процессора (ЦП) на интервал времени, называемый квантом, по истечении которого выгружает этот процесс и запускает другой, периодически переупорядочивая очередь процессов. Алгоритм планирования процессов в системе UNIX использует время выполнения в качестве параметра. Каждый активный процесс имеет приоритет планирования; ядро переключает контекст на процесс с наивысшим приоритетом. При переходе выполняющегося процесса из режима ядра в режим задачи ядро пересчитывает его приоритет, периодически и в режиме задачи переустанавливая приоритет каждого процесса, готового к выполнению.
То есть, в соответствии с этим принципом ядро предоставляет процессу ресурсы ЦП на квант времени, по истечении которого выгружает этот процесс и возвращает его в одну из нескольких очередей, регулируемых приоритетами. Прежде чем процесс завершится, ему может потребоваться множество раз пройти через цикл с обратной связью. Когда ядро выполняет переключение контекста и восстанавливает контекст процесса, процесс возобновляет выполнение с точки приостановки.
разу после переключения контекста ядро запускает алгоритм планирования выполнения процессов, выбирая на выполнение процесс с наивысшим приоритетом среди процессов, находящихся в состояниях "резервирования" и "готовности к выполнению, будучи загруженным в память". Рассматривать процессы, не загруженные в память, не имеет смысла, поскольку не будучи загружен, процесс не может выполняться. Если наивысший приоритет имеют сразу несколько процессов, ядро, используя принцип кольцевого списка (карусели), выбирает среди них тот процесс, который находится в состоянии "готовности к выполнению" дольше остальных. Если ни один из процессов не может быть выбран для выполнения, ЦП простаивает до момента получения следующего прерывания, которое произойдет не позже чем через один таймерный тик; после обработки этого прерывания ядро снова запустит алгоритм планирования.
В функции программы обработки прерываний по таймеру входит:
· вызов на исполнение функций ядра, использующих встроенные часы
· поддержка возможности профилирования выполнения процессов в режимах ядра и задачи
· сбор статистики о системе и протекающих в ней процессах
· посылка процессам сигналов "будильника" по запросу
· периодическое возобновление процесса подкачки
· управление диспетчеризацией процессов
Некоторые из функций реализуются при каждом прерывании по таймеру, другие - по прошествии нескольких таймерных тиков.
Программа обработки прерываний по таймеру запускается с высоким приоритетом обращения к процессору, не допуская во время работы возникновения других внешних событий (таких как прерывания от периферийных устройств). Поэтому программа обработки прерываний по таймеру работает очень быстро, за максимально-короткое время пробегая свои критические отрезки, которые должны выполняться без прерываний со стороны других процессов.
Данные функции довольно очевидны. Среди них:
· Управление выполнением процессов посредством их создания, завершения или приостановки и организации взаимодействия между ними.
· Планирование очередности предоставления выполняющимся процессам времени центрального процессора (диспетчеризация). Процессы работают с центральным процессором в режиме разделения времени: центральный процессор выполняет процесс, по завершении отсчитываемого ядром кванта времени процесс приостанавливается и ядро активизирует выполнение другого процесса. Позднее ядро запускает приостановленный процесс.
· Выделение выполняемому процессу оперативной памяти. Ядро операционной системы дает процессам возможность совместно использовать участки адресного пространства на определенных условиях, защищая при этом адресное пространство, выделенное процессу, от вмешательства извне. Если системе требуется свободная память, ядро освобождает память, временно выгружая процесс на внешние запоминающие устройства, которые называют устройствами выгрузки.
· Выделение внешней памяти с целью обеспечения эффективного хранения информации и выборка данных пользователя. Именно в процессе реализации этой функции создается файловая система. Ядро выделяет внешнюю память под пользовательские файлы, мобилизует неиспользуемую память, структурирует файловую систему в форме, доступной для понимания, и защищает пользовательские файлы от несанкционированного доступа.
Система UNIX позволяет таким устройства, как внешние устройства ввода-вывода и системные часы, асинхронно прерывать работу центрального процессора. По получении сигнала прерывания ядро операционной системы сохраняет свой текущий контекст (застывший образ выполняемого процесса), устанавливает причину прерывания и обрабатывает прерывание. После того, как прерывание будет обработано ядром, прерванный контекст восстановится и работа продолжится так, как будто ничего не случилось. Устройствам обычно приписываются приоритеты в соответствии с очередностью обработки прерываний. В процессе обработки прерываний ядро учитывает их приоритеты и блокирует обслуживание прерывания с низким приоритетом на время обработки прерывания с более высоким приоритетом.
Особые ситуации связаны с возникновением незапланированных событий, вызванных процессом, таких как недопустимая адресация, задание привилегированных команд, деление на ноль и т.д.
Различают некоторое количество уровней прерывания. Их можно перечислить как (от высшего к низшему):
Установка уровня прерывания на определенное значение отсекает прерывания этого и более низких уровней, разрешая обработку только прерываний с более высоким приоритетом.
архитектура операционная многопроцессорный ядро
Я буду рассматривать ядро системы как некоторую модель. Файловая подсистема и подсистема управления процессами, две главные компоненты ядра. Файловая подсистема управляет файлами, размещает записи файлов, управляет свободным пространством, доступом к файлам и поиском данных для пользователей. Процессы взаимодействуют с подсистемой управления файлами, используя при этом совокупность специальных обращений к операционной системе, таких как open (для того, чтобы открыть файл на чтение или запись),close, read, write, stat (запросить атрибуты файла), chown (изменить запись с информацией о владельце файла) и chmod (изменить права доступа к файлу).
Подсистема управления файлами обращается к данным, которые хранятся в файле, используя буферный механизм, управляющий потоком данных между ядром и устройствами внешней памяти. Буферный механизм, взаимодействуя с драйверами устройств ввода-вывода блоками, инициирует передачу данных к ядру и обратно.
Большинство информационных структур ядра размещается в таблицах фиксированного размера, а не в динамически выделенной памяти. Простота алгоритмов ядра представляется более важной, чем сжатие последних байтов оперативной памяти. Обычно в алгоритмах для поиска свободных мест в таблицах используются несложные циклы и этот метод более понятен и иногда более эффективен по сравнению с более сложными схемами выделения памяти.
Структура процессов: управляющие и пользовательские.
Ядро системы не выделяет управляющие процессы в отдельный класс. К управляющим процессам, грубо говоря, относятся те процессы, которые выполняют различные функции по обеспечению благополучной работы пользователей системы. К таким функциям относятся форматирование дисков, создание новых файловых систем, восстановление разрушенных файловых систем, отладка ядра и др. С концептуальной точки зрения, между управляющими и пользовательскими процессами нет разницы. Они используют один и тот же набор обращений к операционной системе, доступный для всех. Управляющие процессы отличаются от обычных пользовательских процессов только правами и привилегиями, которыми они обладают.
Ядро операционной системы поддерживает файлы на внешних запоминающих устройствах большой емкости, таких как диски, и позволяет процессам сохранять новую информацию или вызывать ранее сохраненную информацию. Если процессу необходимо обратиться к информации файла, ядро выбирает информацию в оперативную память, где процесс сможет просматривать эту информацию, изменять ее и обращаться с просьбой о ее повторном сохранении в файловой системе.
Ядро могло бы производить чтение и запись непосредственно с диска и на диск при всех обращениях к файловой системе, однако время реакции системы и производительность при этом были бы низкими из-за низкой скорости передачи данных с диска. По этой причине ядро старается свести к минимуму частоту обращений к диску, заведя специальную область внутренних информационных буферов, именуемую буферным кешем и хранящую содержимое блоков диска, к которым перед этим производились обращения.
Перед чтением информации с диска ядро пытается считать что-нибудь из буфера кеша. Если в этом буфере отсутствует информация, ядро читает данные с диска и заносит их в буфер, используя алгоритм, который имеет целью поместить в буфере как можно больше необходимых данных. Аналогично, информация, записываемая на диск, заносится в буфер для того, чтобы находиться там, если ядро позднее попытается считать ее. Ядро также старается свести к минимуму частоту выполнения операций записи на диск.
Использование буферов позволяет внести единообразие в процедуру обращения к диску, поскольку ядру нет необходимости знать причину ввода-вывода, что упрощает проектирование системы.
Благодаря использованию буферного кеша, сокращается объем дискового трафика и время реакции и повышается общая производительность системы.
Так как ядро в случае отложенной записи не переписывает данные на диск немедленно, такая система уязвима для сбоев, которые оставляют дисковые данные в некорректном виде. Пользователь, запрашивающий выполнение операции записи, никогда не знает, в какой момент данные завершат свой путь на диск.
Использование буферного кеша требует дополнительного копирования.
При передаче большого количества данных дополнительное копирование отрицательным образом отражается на производительности системы, однако при передаче небольших объемов данных производительность повышается.
Представление файлов внутри системы
Систематизируя прошлую информацию, хочу отметить, что каждый файл в системе UNIX имеет уникальный индекс. Индекс содержит информацию, необходимую любому процессу для того, чтобы обратиться к файлу, например, права собственности на файл, права доступа к файлу, размер файла и расположение данных файла в файловой системе. Процессы обращаются к файлам, используя четко определенный набор системных вызовов.
У индексов можно выделить следующие поля:
-Идентификатор владельца файла. Права собственности разделены между индивидуальным владельцем и "групповым" и тем самым помогают определить круг пользователей, имеющих права доступа к файлу. Суперпользователь имеет право доступа ко всем файлам в системе.
-Тип файла. Файл может быть файлом обычного типа, каталогом, специальным файлом,
-Права доступа к файлу. Система разграничивает права доступа к файлу для трех классов пользователей: индивидуального владельца файла, группового владельца и прочих пользователей
-Таблица адресов на диске, в которых располагается информация файла.
последнее обращение 02 Сен 2009 13:45
последнее изменение 15 Сен 2009 10:30
коррекция индекса 23 Сен 2009 13:30
По сути, я косвенно касался данной модели в прошлых разделах, преимущественно при описании файловой системы.
Модель безопасности UNIX довольно проста. В основе её лежит дискреционный механизм доступа - каждый объект в системе имеет владельца, который и устанавливает права доступа к объекту. Сами пользователи в системе фигурируют в виде процессов - программ, запущенных от их имени. Так как в операционной системе UNIX даже устройства представляются в виде файлов, достаточно для каждого из них хранить владельца и права на использование этого файла другими пользователями системы.
Но в операционной системе могут работать тысячи пользователей (а такая ситуация встречается и сейчас - на мэйнфреймах и других больших машинах). При этом списки доступа (ACL, Access Control List) для каждого файла разрастутся до гигантских размеров. Частично эту проблему решает добавление групп пользователей, но ведь их число тоже может быть очень большим. Создатели UNIX придумали более элегантное решение: для каждого файла задаются три группы прав - права владельца, права группы владельца и права для всех остальных. Таким образом, все права на файл занимают лишь несколько байт.
В UNIX существует три основных права доступа: чтение, запись и исполнение. Если права чтения и записи очевидны и понятны, то право исполнения трактуется по-разному для разных типов файлов. Для простых файлов оно определяет возможность запуска содержащейся в нём программы. В UNIX исполняемые файлы могут иметь не только любое расширение (часто они вообще не имеют в имени символа точки), но и содержимое - это может быть откомпилированная для данной архитектуры программа или скрипт на любом из поддерживаемых языков программирования. А вот для директории право исполнения означает возможность "войти" в неё.
Помимо комбинации из этих девяти прав доступа, каждый файл может иметь дополнительные флаги доступа: sticky-бит, специфичный для директорий, и suid-бит, применяемый для исполняемых файлов. Если пометить директорию sticky-битом, удалять файл в ней смогут только владельцы, а не все те, кто имеют права записи на эту директорию - это необходимо в "общих директориях", где создавать и удалять файлы может любой. Suid-бит - большая головная боль системных администраторов, он нужен для повышения прав программы на время запуска.
Распределение основной (оперативной) памяти
Алгоритм планирования использования процессорного времени в сильной степени зависит от выбранной стратегии управления памятью. Процесс может выполняться, если он хотя бы частично присутствует в основной памяти; ЦП не может исполнять процесс, полностью выгруженный во внешнюю память. Тем не менее, основная память - чересчур дефицитный ресурс, который зачастую не может вместить все активные процессы в системе. Если, например, в системе имеется основная память объемом 8 Мбайт, то девять процессов размером по 1 Мбайту каждый уже не смогут в ней одновременно помещаться. Какие процессы в таком случае следует размещать в памяти (хотя бы частично), а какие нет, решает подсистема управления памятью, она же управляет участками виртуального адресного пространства процесса, не резидентными в памяти. Она следит за объемом доступного пространства основной памяти и имеет право периодически переписывать процессы на устройство внешней памяти, именуемое устройством выгрузки, освобождая в основной памяти дополнительное место. Позднее ядро может вновь поместить данные с устройства выгрузки в основную память.
В ранних версиях системы UNIX процессы переносились между основной памятью и устройством выгрузки целиком и, за исключением разделяемой области команд, отдельные независимые части процесса не могли быть объектами перемещения. Такая стратегия управления памятью называется свопингом (подкачкой). Такую стратегию имело смысл реализовывать на машине типа PDP-11, где максимальный размер процесса составлял 64 Кбайта. При использовании этой стратегии размер проце исса ограничивается объемом физической памяти, доступной в системе.
Система BSD (версия 4.0) явилась главным полигоном для применения другой стратегии, стратегии "подкачки по обращению" (demand paging), в соответствии с которой основная память обменивается с внешней не процессами, а страницами памяти; эта стратегия поддерживается и в последних редакциях версии V системы UNIX. Держать в основной памяти весь выполняемый процесс нет необходимости, и ядро загружает в память только отдельные страницы по запросу выполняющегося процесса, ссылающегося на них.
Преимущество стратегии подкачки по обращению состоит в том, что благодаря ей отображение виртуального адресного пространства процесса на физическую память машины становится более гибким: допускается превышение размером процесса объема доступной физической памяти и одновременное размещение в основной памяти большего числа процессов. Преимущество стратегии свопинга состоит в простоте реализации и облегчении "надстроечной" части системы.
В машинах с объемом физической памяти 1 и 2 Мбайта могут исполняться процессы размером 4 или 5 Мбайт. Ограничение на виртуальный размер процесса, связанное с объемом адресуемой виртуальной памяти, остается в силе и здесь. Поскольку процесс может не поместиться в физической памяти, ядру приходится динамически загружать в память отдельные его части и исполнять их, несмотря на отсутствие остальных частей. В механизме подкачки страниц все открыто для пользовательских программ, за исключением разрешенного процессу виртуального размера.
Процессы стремятся исполнять команды небольшими порциями, которые именуются программными циклами или подпрограммами.
Когда процесс обращается к странице, отсутствующей в его рабочем множестве, возникает ошибка, при обработке которой ядро корректирует рабочее множество процесса, в случае необходимости подкачивая страницы с внешнего устройства. По мере выполнения процесса его рабочее множество видоизменяется в соответствии с используемыми процессом указателями страниц; увеличение размера памяти влечет за собой увеличение рабочего множества и, с другой стороны, сокращение числа ошибок в выполнении процесса.
Подсистема управления вводом-выводом позволяет процессам поддерживать связь с периферийными устройствами, такими как накопители на магнитных дисках, терминалы, принтеры и сети, с одной стороны, и с модулями ядра, которые управляют устройствами и именуются драйверами устройств, с другой. Между драйверами устройств и типами устройств обычно существует однозначное соответствие: в системе может быть один дисковый драйвер для управления всеми дисководами, один терминальный драйвер для управления всеми терминалами и один ленточный драйвер для управления всеми ленточными накопителями. Если в системе имеются однотипные устройства, полученные от разных изготовителей - например, две марки ленточных накопителей, - в этом случае можно трактовать однотипные устройства как устройства двух различных типов и иметь для них два отдельных драйвера, поскольку таким устройствам для выполнения одних и тех же операций могут потребоваться разные последовательности команд. Один драйвер управляет множеством физических устройств данного типа. Например, один терминальный драйвер может управлять всеми терминалами, подключенными к системе. Драйвер различает устройства, которыми управляет: выходные данные, предназначенные для одного терминала, не должны быть посланы на другой.
Система поддерживает "программные устройства", с каждым из которых не связано ни одно конкретное физическое устройство. Например, как устройство трактуется физическая память, чтобы позволить процессу обращаться к ней извне, пусть даже память не является периферийным устройством.
В системе UNIX имеется два типа устройств - устройства ввода/вывода блоками и устройства неструктурированного или посимвольного ввода-вывода. Устройства ввода-вывода блоками, такие как диски, для остальной части системы выглядят как запоминающие устройства с произвольной выборкой; к устройствам посимвольного ввода-вывода относятся все другие устройства, в том числе терминалы и сетевое оборудование. Устройства ввода-вывода б
Архитектура системы UNIX, общее описание, модель безопасности курсовая работа. Программирование, компьютеры и кибернетика.
Реферат: Hare Krishna Movement Essay Research Paper One
Реферат по теме Экологическое обследование территории
Реферат: Генетические манипуляции. Скачать бесплатно и без регистрации
Реферат по теме Особенности организации предметно-замкнутых участков
Реферат по теме Рейтинг страховых компаний Украины
Дипломная работа по теме Насильственное хищение имущества
Реферат по теме Мысль и мышление как невозможность: мысль – не откуда, а куда
Курсовая работа по теме Печи нагревательные для термической обработки
Сочинение На Тему Нужны Ли Нам Заимствования
Реферат: Разработка программы для регистрации и учета автотранспортных средств в ГИБДД. Скачать бесплатно и без регистрации
Курсовая работа по теме Государственный долг и его последствия
Написать Сочинение История Владимира Дубровского
Дневник Практики Менеджера Примеры
Контрольная работа: Образование Директории и ее программные положения
Контрольная Работа По Геометрии 7 Класс Просвещение
Корпоративная Культура Реферат
Контрольная работа: Доказывание в гражданском процессе
Реферат по теме Система образов романа Томаса Мэлори Смерть Артура
Реферат: Постулаты квантовой механики
Контрольная работа по теме Русские в Золотой Орде (положение, следствия, борьба)
Казахстан в годы Великой Отечественной Войны. Военные госпитали на территории Карагандинской области - История и исторические личности презентация
Типологія країн світу за рівнем соціально-економічного розвитку - География и экономическая география курсовая работа
Концепция "осевого времени" К. Ясперса - Культура и искусство курсовая работа