ЗНАЕТЕ ЛИ ВЫ?

Работа компьютера: машинный код, вызов функций, прерывания, шины данных.



1) Машинный код — система команд вычислительной машины, которая интерпретируется процессором машины. Каждая инструкция выполняет определённое элементарное действие (сложение, копирование, …) или переход к другому участку кода (изменение порядка исполнения). Каждая программа состоит из последовательности таких атомарных инструкций.

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

Использование регистра прерываний:

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

Использование вектора прерываний:

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

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

Отличие: при выполнении быстрого обработчика прерываний запрещаются все прерывания на процессоре. То есть они не лишают процесса потока управления – после выполнения быстрого прерывания управление передается назад к процессу сразу.

 

3) Вызов функций

Для вызова функции используется следующая последовательность:

1) функция помещается на вершину стека

2) аргументы функции помещаются в стэк в прямом порядке.

3) вызов функции

4) все аргументы и значение функции выбираются (pop) из стека.

5) результаты функции помещаются в стек в прямом порядке.

Любая ошибка внутри функции помещается вверх (при помощи longjmp).

Основное назначение стека вызовов — отслеживать место, куда вызванная процедура должна вернуть управление после завершения. Для этого при вызове процедуры в стек заносится адрес команды, следующей за командой вызова («адрес возврата»). По завершении вызванная процедура должна выполнить команду возврата для перехода по адресу из стека.

Кроме адресов возврата в стеке могут сохраняться другие данные:

значения регистров или локальные переменные.

Стек растет вверх в сторону уменьшения адреса.

 

Системный вызов

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

 

4) Шина— набор проводников, соединяющих различные устройства. Они могут быть внутренними по отношению к процессору (АЛУ <-> АЛУ), а могут быть внешними и связывать процессор с памятью или устройствами ввода-вывода. Основная характеристикой шины - ширина в битах. Ширина шины определяет количество информации, передаваемой за один такт.

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

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

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


 

Задачи операционной системы

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

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

Физические/логические ресурсы

Физические ресурсы – аппаратные компоненты вычислительной системы (реально присутствующие), внешние устройства, ЖД.

Логическое/виртуальное устройство – устройство, некоторые характеристики которого (или все оно) реализованы программным образом.

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

Примеры логического устройтсва:

· ФС – способ организации, хранения и именования данных на носителях информации виртуализировано

ЖД -> Драйвер ЖД -> Драйвер ФС -> Файл

Работа с абстракцией (неизвестно устройство файлов)

· Память в каком-то смысле тоже ЛУ

Она запрограммирована (требуется 8GB, а доступно 4GB – делаем swapping – наращивание ОП за счет ЖД (раздел подкачки))

· Процессор в каком-то роде тоже логический ресурс.

Его инструкции виртуализированы. Например, если процессор не умеет работать с вещественными числами, то в ОС кидается исключение и ОС должна посчитать в целых числах (работа с несуществующим 387 процессором).


 

6. Структура операционной системы

Диск, память -> аппаратный контроллер -> драйвер -> ФС -> ОС -> библиотеки для программ -> прилож -> user

1) Составные части

Ядро́ — центральная часть ОС, обеспечивающая приложениям координированный доступ к ресурсам компьютера (процессорное время, память, устройство ввода и вывода).

Примеры: Linux, Unix, Win NT

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

Пример: командный интерпретатор, набор утилит, компилятор

Одно ядро – много пользовательских окружений: Linux – Gnome, KDE, UNITY (среды рабочего стола)

Разные ядра – одно пользовательское окружение: debian (универсальная ОС из свободного ПО с открытым исходным кодом) – Linux, FreeBSD

2) Этапы загрузки

Загрузчик знает, как загрузить ядро.

Загрузчик лежит в секторе 0 диска. Ядро в boot/kernel

MBR - master boot record — код и данные, необходимые для последующей загрузки операционной системы и расположенные в первых физических секторах на жёстком диске. MBR содержит небольшой фрагмент исполняемого кода, таблицу разделов и специальную сигнатуру. Функция MBR — «переход» в тот раздел жёсткого диска, с которого загружать ОС. В процессе запуска компьютера, после окончания начального теста, базовая система ввода-вывода (BIOS) загружает «код MBR» в оперативную память и передаёт управление находящемуся в MBR загрузочному коду.

BIOS – часть ПО, предназначенная для доступа к аппаратуре.

GPT — GUID Partition Table. GPT позволяет создавать разделы диска размером до 9,4 ЗБ (9,4 × 1021 байт), в то время как MBR может работать только с 2,2 ТБ (2,2 × 1012 байт).

Просто современнее и круче.

MBR присутствует в самом начале диска (блок LBA 0) как для защиты, так и в целях совместимости. Собственно GPT начинается с Оглавления таблицы разделов.

Loader - Загрузчик операционной системы, устраивающий диалог с пользователем (выбор ОС). Загружает ядро в ОП, готовит аппаратуру, передает управление ядру. Фактически – звено между MBR/GPT и ядром.

Kernel – Ядро.

swap – организует работу с паматью. Ответственность за подкачку. Хранит информацию об изменениях. Не обязателен.

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

Процесс – поток, порожденный нашей программой.

Ядро порождает 2 процесса: 0-swap, 1-init

Init запускает ect/ - настройки, /bin-бинарные файлы (), /sbin- бинарные файлы для суперпользователя и т.п.

Init порождает все процессы ( fork() ). Они одинаковые. Чтобы изменить код – execlp

Типы операционных систем

1) Пакетные . Наличие очереди программ на исполнение, которые будут выполняться по 1 отдельно.

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

 

2) Разделения времени.

Скорость ввода много ниже, чем скорость обработки данных -> при пакетном был бы простой компьютера

В системах разделения времени каждой задаче выделяется только квант процессорного времени. Ни одна задача не занимает процессор надолго. Квант достаточно маленький - впечатление, что каждый из процессов единолично использует машину.

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

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

3) Реального времени

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

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

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

4) Сетевые .

Главными задачами являются разделение ресурсов сети (например, дисковые пространства) и администрирование сети.

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


 





Последнее изменение этой страницы: 2016-08-16; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.236.156.32 (0.011 с.)