Дипломы, курсовые, рефераты, контрольные...
Срочная помощь в учёбе

Выделение памяти. 
Проектирование операционной системы

РефератПомощь в написанииУзнать стоимостьмоей работы

Если процесс создает несколько других дочерних процессов, то мы имеем дерево процессов. Другие системные вызовы предназначаются для запросов о предоставлении дополнительной памяти. Если по истечении определенного количества секунд ответа нет, то ОС посылает процессу аварийный сигнал, который вызывает временную остановку работы процесса. Сигналы являются программными аналогами аппаратных… Читать ещё >

Выделение памяти. Проектирование операционной системы (реферат, курсовая, диплом, контрольная)

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

Во-первых, скорости выделения памяти. Стандартная схема выделения памяти предусматривает сканирование списка неопределённой длины для нахождения свободной области памяти заданного размера, а это неприемлемо, так как в ОСРВ выделение памяти должно происходить за фиксированное время.

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

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

Также этот алгоритм отлично функционирует и в настольных системах, особенно тогда, когда во время обработки участка памяти одним ядром следующий участок памяти обрабатывается другим ядром. Такие оптимизированные для настольных систем ОСРВ, как Unison Operating System или DSPnano RTOS, предоставляют указанную возможность.

Концепцию семафоров для синхронизации поведения процессов описал Дейкстра (Dijkstra) в 1965 году.

Семафор представляет собой целую переменную, принимающую неотрицательные значения. Процесс имеет доступ к семафору через две неделимые операции P (от датского слова proberen — проверять) и V (от verhogen — увеличивать). Исключение составляет момент инициализации. Ниже приведено описание этих операций:

P (S): пока S = 0 процесс блокируется;

S = S — 1;

V (S): S = S + 1;

Эта запись означает следующее: при выполнении операции P над семафором S сначала проверяется его значение. Если оно больше 0, то из S вычитается 1. Если оно меньше или равно 0, то процесс блокируется до тех пор, пока S не станет больше 0, после чего из S вычитается 1. При выполнении операции V над семафором S к его значению просто прибавляется 1. В момент создания семафор может быть инициализирован любым неотрицательным значением.

Переменные-семафоры применяются для организации взаимодействия процессов. В некоторых языках программирования они введены в синтаксис языка, в других случаях реализуются с помощью специальных системных вызовов. Во втором случае соответствующая целая переменная располагается внутри адресного пространства ядра операционной системы. Операционная система обеспечивает неделимость операций P и V. Для этого она может запретить прерывания на время выполнения соответствующих системных вызовов. Если при выполнении операции P заблокированными оказались несколько процессов, то порядок их разблокирования может быть произвольным, например, FIFO.

Описание архитектуры Общая схема архитектуры вычислительной системы Архитектура процессора Регистры Способы адресации.

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

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

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

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

ОС — это программное обеспечение, работающее в режиме ядра или супервизора. Таким образом ОС защищена от вмешательства пользователя с помощью аппаратных средств.

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

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

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

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

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

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

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

Показать весь текст
Заполнить форму текущей работой