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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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; просмотров: 235; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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