Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bilety_po_Osyam.doc
Скачиваний:
2
Добавлен:
28.04.2019
Размер:
235.52 Кб
Скачать

6 Ядро операционной системы

Ядро-часть ос, которая работает в пивелигерованном режиме.

Там находятся: 1. все, что связано в вводом, выводом

  1. команды прерываний

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

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

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

Функции ядра

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

  • обработка прерываний;

  • операции над процессами;

  • синхронизация процессов;

  • организация взаимодействия между процессами;

  • манипулирование блоками управления процессами;

  • поддержка операций ввода-вывода;

  • поддержка работы файловой системы;

  • поддержка механизма вызова-возврата при обращении к процедурам;

ряд учетных функций.

7. Ядро состоит из трех основных подсистем:

  • файловая подсистема;

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

Файловая подсистема обеспечивает перенаправление запросов, адресованных периферийным устройствам, соответствующим модулям подсистемы ввода/вывода.

  • подсистема управления процессами и памятью;

  • создание и удаление процессов;

  • распределение системных ресурсов (памяти, вычислительных ресурсов) между процессами;

  • синхронизация процессов;

  • межпроцессное взаимодействие.

  • подсистема ввода/вывода.

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

8 Прцесс загрузки программ

Прога – файл, лежащий на диске

Процесс – это файл, лежащий в исполнении

Файл

процесс

Все современные системы имеют позиционно независимую загрузку

MOV R[1500] переслать регистр R в ячейку 1500

Таблица постройки адресов

dll(библиотеки)

exe и dll внутренни почти одинаковы различие состовляет лишь то что у exe есть точта в хода в прогу а dll – библиотека подпрограмм

Цель создания dll экономия exe кода

9 Стек, куча, Статическая память

Стек (англ. stack — стопка) — структура данных с методом доступа к элементам LIFO (Last In — First Out, последним пришел — первым вышел). Чаще всего принцип работы стека сравнивают со стопкой тарелок: чтобы взять вторую сверху, нужно взять верхнюю.

Добавление элемента, называемое также проталкиванием (push), возможно только в вершину стека (добавленный элемент становится первым сверху), выталкивание (pop) — также только из вершины стека, при этом второй сверху элемент становится верхним.

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

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

Память, которую программа запрашивает и возвращает в процессе работы.(около 2-х гб)

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

Проблема – фрагментация памяти.

Стратегия «подходящий» - вся инф. Засовывается в первый найденный блок, подходящий по размеру.

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

Утечка памяти – когда память захватывается но не возвращается.

  1. garbage collection (сборка мусора) – когда память заполняется происходит упорядочивание кучи.

  2. все, на что есть указатель – полезно, остальное – мусор.

Mark&sweap – подметание мусора. Сбор свободных блоков, передвижение блоков вверх.

  1. java,dopnet – автоматическая сборка мусора.

Проблема – сборка мусора не умеет собирать циклические ссылки.

Сборка мусора: автомат(java), ручной (с++), подсчет ссылок.

Организация

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

В любой момент времени существования кучи вся память, на которой работает куча, разделена на занятую и свободную. Занятая память использована под размещение объектов, уже созданных и ещё не освобождённых к этому моменту времени. Из объёма свободной памяти примитивы работы с кучей могут выделять память под новые объекты.

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

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