- •2) Архитектура и структура операционных систем: Прерывания, многозадачность.
- •3) Управление файлами: Структура файловой системы, контроль доступа.
- •1. Архитектура и структура операционных систем: Основные принципы построения операционных систем.
- •2. Общие понятия распределенных систем: Структура сетевых операционных систем и распределенных систем, сокет, middleware, технологии построения распределенных систем.
- •Управление памятью: Свопинг, оверлей.
- •1. Принципы построения операционных систем.
- •11. Принципы построения операционных систем.
- •1. Принцип модульности
- •2. Принцип функциональной избирательности
- •3. Принцип генерируемости ос
- •4. Принцип функциональной избыточности
- •5. Принцип виртуализации
- •6. Принцип независимости программ от внешних устройств
- •7. Принцип совместимости
- •8. Принцип открытой и наращиваемой ос
- •9. Принцип модульности (переносимости)
- •10. Принцип обеспечения безопасности вычислений
- •2. Архитектура и структура операционных систем: Системные вызовы, привилегированный режим, режим ядра, пользовательский режим, posix, ieee.
- •3. Управление вводом-выводом: Структура системы ввода-вывода, типичные функции hal.
- •1. Управление процессами и задачами: Генерирование событий, критическая секция.
- •2. Управление вводом-выводом: Буферизация, кэширование, спулинг.
- •3. Основы безопасности компьютерных систем: Виды угроз, атака, механизм и политика информационной безопасности, ее свойства.
- •1. Управление памятью: Линии, шины, магистрали, адресация.
- •2. Управление процессами и задачами: Мьютекс, семафор.
- •3. Управление файлами: Файл, типы файлов, файловая система, требования к устройствам хранения.
- •1. Управление вводом-выводом: Этапы развития системы ввода-вывода.
- •2. Архитектура и структура операционных систем: Монолитные и микроядерные операционные системы, архитектура "клиент-сервер".
- •3. Назначение и основные понятия операционной системы: Системное программное обеспечение и его классификация.
- •1. Управление файлами: Сектор, дорожка, цилиндр, блок, кластер, раздел, mbr.
- •2. Основы безопасности компьютерных систем: Формализация подхода к обеспечению информационной безопасности, требования c2 "оранжевой книги".
- •3. Архитектура и структура операционных систем: Вычислительный процесс, дескриптор процесса, диспетчер задач, поток.
- •1. Общие понятия распределенных систем: Понятие и характеристики распределенных систем, схемы объединения автономных систем в вычислительные сети.
- •2. Назначение и основные понятия операционной системы: ose/rm, api, eei, функций операционной системы.
- •3. Управление файлами: Логическая организация файла.
- •1)Основы безопасности компьютерных систем: Идентификация, авторизация, аутентификация, аудит.
- •2. Управление памятью: Виды методов распределения памяти с использованием внешней памяти.
- •17) Виды методов распределения памяти с использованием внешней памяти
- •1)Страничное распределение
- •2)Сегментное распределение
- •3) Странично-сегментное распределение
- •3. Управление файлами: Физическая организация файла.
- •1. Классификация операционных систем.
- •2. Управление памятью: Виды методов распределения памяти без использования внешней памяти.
- •3. Архитектура и структура операционных систем: Программные модули, многопоточность.
3. Архитектура и структура операционных систем: Программные модули, многопоточность.
Модуль - функционально законченный элемент системы, отвечающий требованиям межмодульного интерфейса. Из определения следует, что один модуль можно заменить на другой. Способы обособления отдельных частей ОС могут различаться, но чаще всего разделение происходит по функциональному принципу.
Программный модуль - согласно ГОСТ 19781-90 - программа или функционально завершенный фрагмент программы, предназначенный для:
-1- хранения;
-2- трансляции;
-3- объединения с другими программными модулями; и
-4- загрузки в оперативную память.
Различают:
- стандартные модули, входящие в язык программирования; и
- пользовательские модули, предназначенные для упрощения работы программистов.
Многопоточность
Многопото́чность — свойство платформы (например, операционной системы, JVM и т. д.) или приложения, состоящее в том, что процесс, порождённый в операционной системе, может состоять из нескольких потоков, выполняющихся «параллельно», то есть без предписанного порядка во времени. При выполнении некоторых задач такое разделение может достичь более эффективного использования ресурсов вычислительной машины.
Такие потоки называют также потоками выполнения (от англ. thread of execution); иногда называют «нитями» (буквальный перевод англ. thread) или неформально «тредами».
Сутью многопоточности является квазимногозадачность на уровне одного исполняемого процесса, то есть все потоки выполняются в адресном пространстве процесса. Кроме этого, все потоки процесса имеют не только общее адресное пространство, но и общие дескрипторы файлов. Выполняющийся процесс имеет как минимум один (главный) поток.
Многопоточность не следует путать ни с многозадачностью, ни с многопроцессорностью, несмотря на то, что операционные системы, реализующие многозадачность, как правило реализуют и многопоточность.
К достоинствам многопоточности в программировании можно отнести следующее:
-Упрощение программы в некоторых случаях, за счет использования общего адресного пространства.
-Меньшие относительно процесса временны́е затраты на создание потока.
-Повышение производительности процесса за счет распараллеливания процессорных вычислений и операций ввода/вывода.
Главное, что обеспечивает многопоточность, это возможность параллельно выполнять несколько видов операций в одной прикладной программе. Параллельные вычисления (а следовательно и более эффективное использование ресурсов центрального процессора, и меньшее суммарное время выполнения задач) гораздо удобнее реализовать не на уровне процессов, но на уровне потоков. Программа, разработанная с использованием механизма потоков, представляемая как некоторое множество задач в рамках одного процесса, может быть выполнена быстрее за счет параллельного функционирования ее отдельных частей. Особенно это выгодно при наличии нескольких процессоров, ибо каждая задача может выполняться на отдельном процессоре.