
- •2. Архитектура современных ос. Структура ос unix.
- •1.Монолитные
- •2.Модульные
- •3.Ос с микроядром
- •7.Процессы и потоки в ос. Понятие процесса. Жизненный цикл процесса. Различные состояния процесса.
- •8.Процессы и потоки в ос. Понятие нити (Thread). Основные отличия нити от процесса.
- •9.Процессы и потоки в ос. Необходимость синхронизации при работе с общими ресурсами. Способы синхронизации.
- •12.Механизмы синхронизации. Сравнение мьютекса и двоичного семафора.
- •13.Управление оперативной памятью. Способы защиты оперативной памяти процесса от случайного или злонамеренного вторжения из другого процесса. Сегментная организация памяти. Виртуальная память.
- •15.Управление оперативной памятью в современных ос. Виртуальная память процесса и ее отображение в реальную оперативную память компьютера. Файл подкачки.
- •16.Цели и задачи файловой системы ос. Многоуровневая организация файловой системы. Логическая и физическая фс.
- •19.Логическая файловая система ос unix.
- •21.Физическая организация файловой системы. Файловая система System V (s5fs).
- •22.Физическая организация файловой системы. Файловая система ntfs.
- •23.Управление вводом/выводом. Понятие аппаратного прерывания и его обработка.
- •24.Управление вводом/выводом. Синхронный и асинхронный ввод/вывод.
- •Права доступа к файлу
- •26.Управление безопасностью. Задача администрирования вычислительной системы и компьютерной сети.
- •27.Управление доступом к файлам в ос unix.
- •28.Управление доступом к файлам в ос Windows nt. Списки прав доступа.
- •30.Платформа .Net. Основные идеи и положения. Языки программирования .Net.
- •32.Функциональные компоненты ос. Управление процессами.
- •33.Функциональные компоненты ос. Безопасность и защита данныx.
- •35.Функциональные компоненты ос. Управление оперативной памятью.
- •37.Компьютерные сети. Протоколы tcp/ip. Интернет.
- •38.Переносимость программного обеспечения. Стандарты операционных систем.
1.Задачи и функции операционной системы компьютера. Классификация ОС. Основные современные ОС. Операцио́нная систе́ма, сокр. ОС (англ. operating system) — комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой — предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений. Основные функции ОС:1.Выполнение по запросу программ тех достаточно элементарных (низкоуровневых) действий, которые являются общими для большинства программ и часто встречаются почти во всех программах (ввод и вывод данных, запуск и остановка других программ, выделение и освобождение дополнительной памяти и др.).2.Загрузка программ в оперативную память и их выполнение.3.Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода).4.Управление оперативной памятью (распределение между процессами, организация виртуальной памяти).5Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск, оптические диски и др.), организованным в той или иной файловой системе.6.Обеспечение пользовательского интерфейса.7.Сетевые операции, поддержка стека сетевых протоколов. Дополнительные функции:1.Параллельное или псевдопараллельное выполненизадач(многозадачность).2.Эффективное распределение ресурсов вычислительной системы между процессами.3.Разграничение доступа различных процессов к ресурсам.4.Организация надёжных вычислений (невозможности одного вычислительного процесса намеренно или по ошибке повлиять на вычисления в другом процессе), основана на разграничении доступа к ресурсам.5.Взаимодействие между процессами: обмен данными, взаимная синхронизация.6.Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений.7.Многопользовательский режим работы и разграничение прав доступа. Классификация ОС:
Универсальные ОС
использующие файловые системы
многопользовательские (разделение полномочий)
многозадачные (разделение времени)
Специализированные ОС
Системы реального времени
Сверхнадежные системы
Встроенные системы
Многозадачность и распределение полномочий требуют определённой иерархии привилегий компонентов самой ОС. В составе ОС различают три группы компонентов:1ядро, содержащее планировщик; драйверы устройств, непосредственно управляющие оборудованием; сетевая подсистема, файловая система;2системные библиотеки;3оболочка с утилитами. Классификация вычислительных систем (ВС – машина + обеспечение):
Суперкомпьютер
Супер-сервер
Сервер масштаба подразделения
Сервер группы
Персональный компьютер
Современные ОС:MS Windows.Apple Mac OS X.Linux.IPhone
2. Архитектура современных ос. Структура ос unix.
1.Монолитные
Пользовательский режим >>> режим процессора >>> оборудование
Моноли́тное ядро́ — классическая архитектура ядер операционных систем. Монолитные ядра предоставляют богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве.
Ранние Unix, Novell Netware, Mac OS, IBM OS/370
2.Модульные
Модуль – функционально законченный элемент системы, отвечающий требованиям межмодульного интерфейса.ВСЕ современные ОС модульные!Модульное ядро — современная, усовершенствованная модификация архитектуры монолитных ядер операционных систем. В отличие от «классических» монолитных ядер, модульные ядра, как правило, не требуют полной перекомпиляции ядра при изменении состава аппаратного обеспечения компьютера. Вместо этого модульные ядра предоставляют тот или иной механизм подгрузки модулей ядра, поддерживающих то или иное аппаратное обеспечение (например, драйверов). При этом подгрузка модулей может быть как динамической
(выполняемой «на лету», без перезагрузки ОС, в работающей системе), так и статической (выполняемой при перезагрузке ОС после переконфигурирования системы на загрузку тех или иных модулей).
3.Ос с микроядром
Микроядро — это минимальная реализация функций ядра операционной системы.
Классические микроядра предоставляют лишь очень небольшой набор низкоуровневых примитивов, или системных вызовов, реализующих базовые сервисы операционной системы.Сюда относятся:1управление адресным пространством оперативной памяти.2управление адресным пространством виртуальной памяти.3управление процессами и потоками (нитями).4средства межпроцессной коммуникации.
4.Виртуальные машиныПостроение виртуальных ресурсов, их распределение и использование в настоящее время имеет место почти в каждой ОС. Этот принцип позволяет представить структуру системы в виде определенного набора планировщиков процессов и распределителей ресурсов и использовать единую централизованную схему распределения ресурсов. Понятие виртуальная машина является итогом концепции виртуальности. Любая ОС, являясь средством распределения ресурсов и организуя по определенным правилам управление процессами, скрывает от пользователя и его приложений реальные аппаратные и иные ресурсы, заменяя их абстракциями. Пользователь видит виртуальную машину как некое устройство, способное воспринимать его программы и команды. Пользователя не интересует реальная конфигурация вычислительной системы и способы управления ее компонентами. Он оперирует с теми ресурсами, которые ему предоставлены в рамках виртуальной машины. Виртуальная машина, предоставляемая пользователю, воспроизводит архитектуру реальной машины, но архитектурные элементы в таком представлении имеют новые или улучшенные характеристики, часто упрощающие работу с системой. Характеристики могут быть произвольными, но обычно пользователи хотят видеть идеальную по своим архитектурным характеристикам машину:1.единообразная по логике работы память практически неограниченного объема. 2.произвольное количество (виртуальных) процессоров, способных работать параллельно и взаимодействовать во время работы.3.произвольное количество (виртуальных) внешних устройств, способных работать с памятью виртуальной машины параллельно или последовательно, асинхронно или синхронно по отношению к работе того или иного виртуального процессора, которые инициируют работу этих устройств. Особенности UNIX, отличающие данное семейство от других ОС:1.Файловая система древовидная, чувствительная к регистру символов в именах, очень слабые ограничения на длину имён.2.Нет поддержки структурированных файлов ядром ОС, на уровне системных вызовов файл есть поток байт.3.Командная строка находится в адресном пространстве запускаемого процесса, а не извлекается системным вызовом из процесса интерпретатора команд .4Запуск процессов вызовом fork(), то есть возможность клонирования текущего процесса со всем состоянием.5.Понятия stdin/stdout/stderr.6.Ввод/вывод только через дескрипторы файлов.7.Традиционно крайне слабая поддержка асинхронного ввода/вывода, по сравнению с VMS и Windows NT.
3.Архитектура современных ОС. Структура ОС Windows NT. Архитектура Windows NT имеет модульную структуру и состоит из двух основных уровней — компоненты, работающие в режиме пользователя и компоненты режима ядра. Программы и подсистемы, работающие в режиме пользователя имеют ограничения на доступ к системным ресурсам. Режим ядра имеет неограниченный доступ к системной памяти и внешним устройствам. Ядро системы NT называют гибридным ядром или макроядром. Архитектура включает в себя само ядро, уровень аппаратных абстракций (HAL), драйверы и ряд служб (Executives), которые работают в режиме ядра (Kernel-mode drivers) или в пользовательском режиме (User-mode drivers).Пользовательский режим Windows NT состоит из подсистем, передающих запросы ввода\вывода соответствующему драйверу режима ядра посредством менеджера ввода\вывода. Есть две подсистемы на уровне пользователя: подсистема окружения (запускает приложения, написанные для разных операционных систем) и интегрированная подсистема (управляет особыми системными функциями от имени подсистемы окружения). Режим ядра имеет полный доступ к аппаратной части и системным ресурсам компьютера. И также предотвращает доступ к критическим зонам системы со стороны пользовательских служб и приложений.Windows API (application programming interfaces) — общее наименование целого набора базовых функций интерфейсов программирования приложений операционны систем семейств Windows и Windows NT корпорации «Майкрософт». Является самым прямым способом взаимодействия приложений с Windows.
4.Архитектура современных ОС. Системы с монолитным ядром и с микроядром. Ядро́ — центральная часть операционной системы (ОС),обеспечивающая приложениям координированный доступ к ресурсам компьютера, таким как процессорное время, память и внешнее аппаратное обеспечение. Также обычно ядро предоставляет сервисы файловой системы и сетевых протоколов.(2) Все остальные сервисы ОС, в классических монолитных ядрах предоставляемые непосредственно ядром, в микроядерных архитектурах реализуются в адресном пространстве пользователя (Ring3) и называются сервисами. Примерами таких сервисов, выносимых в пространство пользователя в микроядерных архитектурах, являются сетевые сервисы, файловая система, драйверы.Такая конструкция позволяет улучшить общее быстродействие системы (небольшое микроядро может уместиться в кэше процессора). Основное достоинство микроядерной архитектуры — высокая степень модульности ядра операционной системы.
6.Процессы и потоки в ОС. Понятие процесса. Атрибуты процесса. Создание нового процесса в различных ОС. Мультипрограммирование, или многозадачность (multitasking), — это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются сразу несколько программ. Эти программы совместно используют не только процессор, но и другие ресурсы компьютера: оперативную и внешнюю память, устройства ввода-вывода, данные. Мультипрограммирование призвано повысить эффективность использования вычислительной системы(пропускная способность — количество задач, выполняемых вычислительной системой в единицу времени).Чтобы поддерживать мультипрограммирование, ОС должна определить и оформить для себя те внутренние единицы работы, между которыми будет разделяться процессор и другие ресурсы компьютера. В настоящее время в большинстве операционных систем определены два типа единиц работы. Более крупная единица работы, обычно носящая название процесса, или задачи, требует для своего выполнения нескольких более мелких работ, для обозначения которых используют термины «поток», или «нить». В операционных системах, где существуют и процессы, и потоки, процесс рассматривается операционной системой как заявка на потребление всех видов ресурсов, кроме одного — процессорного времени. Этот последний важнейший ресурс распределяется операционной системой между другими единицами работы — потоками, которые и получили свое название благодаря тому, что они представляют собой последовательности (потоки выполнения) команд.
Для того чтобы процессы не могли вмешаться в распределение ресурсов, а также не могли повредить коды и данные друг друга, важнейшей задачей ОС является изоляция одного процесса от другого. Для этого операционная система обеспечивает каждый процесс отдельным виртуальным адресным пространством, так что ни один процесс не может получить прямого доступа к командам и данным другого процесса.Виртуальное адресное пространство процесса — это совокупность адресов, которыми может манипулировать программный модуль процесса. Операционная система отображает виртуальное адресное пространство процесса на отведенную процессу физическую память.
Создать процесс — это, прежде всего, означает создать описатель процесса, в качестве которого выступает одна или несколько информационных структур, содержащих все сведения о процессе,, необходимые операционной системе для управления им. В число таких сведений могут входить, например, идентификатор процесса, данные о расположении в памяти исполняемого модуля, степень привилегированности процесса (приоритет и права доступа) и т.п. Примерами описателей процесса являются блок управления задачей (ТСВ — Task Control Block) в OS/360, управляющий блок процесса (РСВ — Process Control Block) в OS/2, дескриптор процесса в UNIX, объект-процесс (object-process) в Windows NT.
Создание процесса включает загрузку кодов и данных исполняемой программы данного процесса с диска в оперативную память.
Unix: fork() позволяет создать нов пр(копию процесса) – единственный!. После выполнения запроса fork() двум пр – родительскому и дочернему – соотв одинаковые образы памяти, строки окружения и открытые файлы. Обычно дочерний пр выполняет сист вызов execve для изменения своего образа памяти и запуска нов проги. Начальное адресное пр-во дочернего процесса явл копией родительского, но сами адресн пр-ва различны, и перезаписываемая память совместно не используется.
Windows: CreateProcess(8 параметров) управляет и созданием пр и запуском в нем нужной программы. Есть еще около 100 ф-ий для управления пр. адресные пространства отличаются с самого начала. Атрибуты (Unix):
Каждый процесс в ОС Unix характеризуется набором признаков – атрибутов, отличающих его от других процессов. Большинство атрибутов процесс наследует от родительского процесса, одна часть атрибутов устанавливается ОС, другая часть порождается самим процессом в ходе его выполнения.
Назначает ОС:1идентификатор (номер) процесса PID (Process Identifier)2идентификатор родительского процесса PPID (Parent Process ID).
К атрибутам также относятся:
1Контролирующий управляющий терминал. Открывается процессом для чтения и записи. С его помощью процессу могут быть посланы сигналы прерывания. Управляющий терминал устанавливается только для тех процессов, которые запущены программой пользователя.
2Реальный и эффективный идентификаторы пользователя и группы. Каждый пользователь, зарегистрированный в ОС, имеет идентификаторы пользователя UID и группы GID, которые хранятся в файлах /etc/passwd и /etc/group.