1. Особенности алгоритмов управления вычислительными ресурсами (ЦП) |
|
Количество пользователей |
- однопользовательская ОС - многопользовательская ОС |
Одновременно выполняемое число процессов |
- однозадачная ОС - многозадачная ОС |
Тип многозадачности |
- вытесняющая - не вытесняющая |
Поддержка многозадачности |
- есть - нет |
2. По типу аппаратной платформы |
|
- мейнфреймы (суперкомпьютер) - мультипроцессорные серверы - сетевые компьютеры и ОС (решают задачи управления распределенными ресурсами) - Grid-система – вычислительный массив для организации параллельных вычислений - мобильные платформы (IOS, Android, Windows Mobile) - платформенно независимые ОС (UNIX-переносимые сист. и большинство на ЯП C) |
|
3. По особенности организации выполнения программ и взаимодействия с пользователем |
|
- ОС пакетного режима (пакет=очередь, задачи выполняются в порядке очереди, каждое задание снабжено заголовком, в котором описаны требуемые ресурсы; отсутствие взаимодействия с пользователем при выполнении программы) - ОС разделения времени (большинство современных систем, псевдопараллельное выполнение множества программ, удобство взаимодействия с человеком – диалоговый режим, индивидуальное взаимодействие программиста с ОС) - ОС реального времени (входят в состав САУ, выполняют фиксированный, заранее известный набор программ (поддержка уровня жидкости); должны обеспечивать гарантированное время реакции программ на внешние воздействия; не предназначена для взаимодействия с пользователем) |
|
4. По особенности архитектуры (внутреннего строения) |
|
-монолитное ядро (программные модули объединены в одну платформу (программу)) -микроядро (10кБ, функции ядра предельно ограничены; основные функции – это передача сообщений между другими модулями ОС и некоторые функции управления клавиатурой; использование ООП) |
|
Файловая система NTFS была разработана специально для версии Windows NT. Начиная с Windows XP ее по умолчанию устанавливает большинство производителей компьютеров. NTFS использует 64-битные дисковые адреса и теоретически может поддерживать дисковые разделы размером до 264 байт. Имена файлов в NTFS ограничены 255 символами и хранятся к кодировке Unicode. Файл состоит из множества атрибутов, каждый из которых представлен потоком байтов. Большинство файлов имеет несколько коротких потоков (таких, как название файла и его 64-битный идентификатор объекта) плюс один длинный (неименованный) поток с данными.
«Короче, вот мои билеты, сразу скажу, что усилий в них вложено немного, я в основном просто редактировала книжку Таненбаума, тут дохрена всего»
(с) Сократ, 399 г. до н.э.
На любом компьютере программы ссылаются на набор адресов, который может быть использован процессором для обращения к памяти. Адреса могут генерироваться с использованием индексной адресации, базовых регистров, сегментных регистров и другими способами. Такие сгенерированные программным способом адреса называются виртуальными адресами, именно они и формируют виртуальное адресное пространство. На компьютерах, не использующих виртуальную память, виртуальные адреса выставляются непосредственно на шине памяти, что приводит к чтению или записи слова физической памяти с таким же адресом. При использовании виртуальной памяти виртуальные адреса не выставляются напрямую на шине памяти. Вместо этого они поступают в диспетчер памяти, который отображает виртуальные адреса на адреса физической памяти, управляет иерархией памяти, выделяет память и освобождает при завершении процессов.
Адресное пространство не обязательно должно быть числовым. Набор интернет-доменов .com также является адресным пространством, он состоит из всех строк длиной от 2 до 63 символов, которые могут быть составлены из букв, цифр и дефисов, за которыми следует название домена — .com. Сложнее понять, как каждой программе можно выделить собственное адресное пространство, поскольку адрес 28 в одной программе означает иное физическое место, чем адрес 28 в другой программе. Механизм исп. базового и ограничительного регистров — простой способ, который вышел из употребления. Классическое решение заключается в оснащении каждого центрального процессора двумя специальными аппаратными регистрами, которые обычно называются базовым и ограничительным регистрами. При использовании этих регистров программы загружаются в последовательно расположенные свободные области памяти без модификации адресов в процессе загрузки. При запуске процесса в базовый регистр загружается физический адрес, с которого начинается размещение программы в памяти, а в ограничительный регистр загружается длина программы. При каждой ссылке процесса на память ЦП перед выставлением адреса на шине памяти добавляет к адресу, сгенерированному процессом, значение базового регистра. Одновременно аппаратура проверяет значение ограничительного и сравнивает. Недостаток: необходимость применения операций + и сравнения к каждой ссылке на ячейку памяти. Сравнение может осуществляться довольно быстро, но + является слишком медленной операцией (если без сумматоров).
NTFS — это иерархическая файловая система, похожая на файловую систему UNIX. Однако разделителем компонентов имени является знак «\», а не «/».
Каждый том NTFS (например, дисковый раздел) содержит файлы, каталоги, битовые массивы и другие структуры данных. Каждый том организован как линейная последовательность блоков (кластеров), причем размер блоков для каждого тома фиксирован.
Главная структура данных каждого тома — это MFT (Master File Table — главная таблица файлов), которая является линейной последовательностью записей фиксированного размера (1 Кбайт). Каждая запись MFT описывает один файл или один каталог. Она содержит атрибуты файла (такие, как его имя и временная метка), а также список дисковых адресов (где расположены его блоки). Если файл очень большой, то иногда приходится использовать две или более записи MFT (чтобы разместить в них список всех блоков). В этом случае первая запись в MFT, называемая основной записью (base record), указывает на дополнительные записи в MFT. Сама MFT также является файлом и в качестве такового может быть размещена в любом месте тома (таким образом устраняется проблема наличия дефектных секторов на первой дорожке). Более того, при необходимости этот файл может расти (до максимального размера в 248 записей).
Каждая запись MFT состоит из последовательности пар (заголовок атрибута — значение). Каждый атрибут начинается с заголовка, рассказывающего о том, что это за атрибут и какую длину имеет его значение. Некоторые значения атрибутов (такие, как имя файла и его данные) имеют переменную длину. Если значение атрибута достаточно короткое для того, чтобы уместиться в записи MFT, то оно помещается именно туда. Если же значение слишком длинное, то оно размещается на диске, а в запись MFT помещается указатель на него. Это делает систему NTFS очень эффективной для небольших полей, которые могут разместиться в самой записи MFT. Первые 16 записей MFT резервируются для файлов метаданных NTFS. Каждая из этих записей описывает нормальный файл, который имеет атрибуты и блоки данных (как и любой другой файл). Каждый из этих файлов имеет имя, которое начинается со знака доллара (чтобы обозначить его как файл метаданных). Первая запись описывает сам файл MFT. В частности, в ней говорится, где находятся блоки файла MFT (чтобы система могла найти файл MFT). Очевидно, что Windows нужен способ нахождения первого блока файла MFT, чтобы найти остальную информацию по файловой системе. Windows смотрит в загрузочном блоке — именно туда записывается адрес первого блока файла MFT при форматировании тома.
Так же, как Unix представляет не одну систему, а ряд совместимых, так же UFS - не одна система, а целый ряд. Основным отличием UFS от других систем является выделение атрибутов файла в отдельном объекте файловой системе - inode; это позволяет иметь доступ к файлу (к набору данных, хранящихся в файле) более чем по одному имени, а заодно повысить эффективность функционирования системы.
Современные UFS позволяют создавать длинные имена (до 255 символов), имена файлов хранят в двоичном дереве или hash-таблице, а номер inode может быть любым - четырехбайтным или восьмибайтным.
Файловая система UFS имеет следующие четыре типа блоков:
Загрузочный блок. Хранит информацию, которая используется при выполнении загрузки системы. Загрузочный блок хранит процедуры, используемые при выполнении загрузки системы. Без загрузочного блока система не загружается. Если файловая система не используется при загрузке системы, загрузочный блок остается пустым. Загрузочный блок появляется только в первой группе цилиндров (группа 0) и занимает первые 8 Кбайт части диска.
Суперблок. Хранит важную информацию о файловой системе.
Индексный дескриптор (inode). Хранит всю информацию о файле за исключением его имени.
Блок хранения, или блок данных. Хранит данные каждого файла.
Сам блок inode содержит:
количество ссылок на файл - каждое имя, ссылающееся на файл, а также открытие файла увеличивают этот счетчик на единицу; файл стирается с высвобождением занятого места, как только счетчик становится равным нулю (т.е. можно стереть открытый файл, а реально он сотрется, когда его закроют);
размер файла;
дату и время создания, последнего изменения и последего чтения файла;
тип файла - в Unix это бывает: обычный файл; директория; файл блочного устройства; файл символьного (последовательного) устройства; поименованный пайп; символьный линк (алиас);
UID (идентификатор хозяина файла) и GID (идентификатор группы);
атрибуты доступа: 'Read', 'Write' и 'eXecute'; SetUID и SetGID - для запускаемого файла (не интерпретируемого) эти атрибуты определяют запуск процесса под правами не запустившего их пользователя, а хозяина и/или группы файла соответственно; и еще есть один атрибут - для директории он запрещает стирание файлов, не принадлежащих стирающему;
расширенный ACL (Список Управления Доступом) или ссылку на ACL, если файловая система поддерживает ACL;
несколько ссылок на кластеры файловой системы.
Операционная система — наиболее фундаментальная часть программного обеспечения, работающая в режиме ядра (этот режим называют еще режимом супервизора). В этом режиме она имеет полный доступ ко всему аппаратному обеспечению и может задействовать любую инструкцию, которую машина в состоянии выполнить. Вся остальная часть программного обеспечения работает в режиме пользователя, в котором доступно лишь подмножество инструкций машины.
Дать точное определение операционной системы довольно трудно. Можно сказать, что это программное обеспечение, которое работает в режиме ядра, но и это не всегда так. Отчасти проблема в том, что ОС осуществляют две значительно отличающиеся друг от друга функции: предоставляют прикладным программистам (и прикладным программам, естественно) вполне понятный абстрактный набор ресурсов взамен неупорядоченного набора аппаратного обеспечения и управляют этими ресурсами. Помимо этого, в функции операционной системы входит:
— осуществление диалога с пользователем;
— ввод-вывод и управление данными;
— планирование и организация процесса обработки программ;
— распределение ресурсов (оперативной памяти и кэша, процессора, внешних устройств);
— запуск программ на выполнение;
— всевозможные вспомогательные операции обслуживания;
— передача информации между различными внутренними устройствами;
— программная поддержка работы периферийных устройств (дисплея, клавиатуры, дисковых накопителей, принтера и др.).
— организация среды взаимодействия и обмена информацией между работающими программами.