Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Файловые системы в Linux






XFS — начало разработки 1993 год, фирма Silicon Graphics, в мае 2000 года предстала в GNU GPL, для пользователей большинства Linux систем стала доступна в 2001-2002 гг. Отличительная черта системы — прекрасная поддержка больших файлов и файловых томов, 8 эксбибайт — 1 байт (8*260-1 байт) для 64-х битных систем. Ко всему прочему обладает другими немаловажными особенностями — непрерывные области дискового пространства, задержка выделения пространства и онлайн дефрагментация. Является одной из старейших журналируемых файловых систем для *nix, и содержит в себе наиболее отлаженный, в этом контексте, исходный код.

ReiserFS (Reiser3) — одна из первых журналируемых файловых систем под Linux, разработана Namesys. Имеет некоторые врождённые головные боли, но в целом неплохая система, ведущая отсчёт дней своих с 2001 года. Оговорюсь, что смысл журналируемых систем заключается в дисковых транзакциях, которые последовательно пишутся в специальную зону диска (журнал, он же лог), перед тем как данные попадают в конечные точки файловой системы. Максимальный объём тома для этой системы равен 16 тебибайт (16*240 байт).

JFS (Journaled File System) — файловая система, детище IBM, явившееся миру в далёком 1990 году для ОС AIX (Advanced Interactive eXecutive). В виде первого стабильного релиза, для пользователей Linux, система стала доступна в 2001 году. Из плюсов системы — неплохая масштабируемость. Из минусов — не особо активная поддержка на протяжении всего жизненного цикла. Максимальный рамер тома 32 пэбибайта (32*250 байт).

ext (extended filesystem) — появилась в апреле 1992 года, это была первая файловая система, изготовленная специально под нужды Linux ОС. Разработана Remy Card с целью преодолеть ограничения файловой системы Minix.

ext2 (second extended file system) — была разработана Remy Card в 1993 году. Не журналируемая файловая система, это был основной её недостаток, который исправит ext3.

ext3 (third extended filesystem) — по сути расширение исконной для Linux ext2, способное к журналированию. Разработана Стивеном Твиди (Stephen Tweedie) в 1999 году, включена в основное ядро Linux в ноябре 2001 года. На фоне других своих сослуживцев обладает более скромным размером пространства, до 4 тебибайт (4*240 байт) для 32-х разрядных систем. На данный момент является наиболее стабильной и поддерживаемой файловой системой в среде Linux.

Reiser4 — первая попытка создать файловую систему нового поколения для Linux. Впервые представленная в 2004 году, система включает в себя такие передовые технологии как транзакции, задержка выделения пространства, а так же встроенная возможность кодирования и сжатия данных. Ханс Рейзер (Hans Reiser), главный разработчик системы, рекламировал использовать своё детище непосредственно как БД с улучшенными метаданными. После того, как Ханс Рейзер был осуждён за убийство в 2008 году, дальнейшая судьба системы стала сомнительной.

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

UPD: Btrfs (B-tree FS или Butter FS) — проект изначально начатый компанией Oracle, впоследствии поддержанный большинством Linux систем. Многие считаеют систему эдаким ответом на ZFS. Ключевыми особенностями данной файловой системы являются технологии: copy-on-write, позволяющая сделать снимки областей диска (снапшоты), которые могут пригодится для последующего восстановления; контроль за целостностью данных и метаданных (с повышенной гарантией целостности); сжатие данных; оптимизированный режим для накопителей SSD (задаётся при монтировании) и прочие. Немаловажным фактором является возможность перехода с ext3 на Btrfs. С августа 2008 года данная система выпускается под GNU GPL.

Tux2 — известная, но так и не анонсированная публично файловая система. Создатель Дэниэл Филипс (Daniel Phillips), система базируется на алгоритме «Фазового Дерева», который как и журналирование защищает файловую систему от сбоев. Организована как надстройка на ext2.

Tux3 — наступая на пятки Btrfs, представлена новая файловая система. Система создана на основе FUSE (Filesystem in Userspace), специального модуля для создания файловых систем на *nix платформах. Данный проект ставит перед собой цель избавиться от привычного журналирования, взамен предлагая версионное восстановление (состояние в определённый промежуток времени). Преимуществом используемой в данном случае версионной системы, является способ описания изменений, где для каждого файла создаётся изменённая копия, а не переписывается текущая версия. Такой подход позволяет более гибко управлять версиями.

UPD: Xiafs — задумка и разработка данной файловой системы принадлежат Frank Xia, основана на файловой системе MINIX. В настоящее время считается устаревшей и практически не используется. Наряду с ext2 разрабатывалась, как замена системе ext. В декабре 1993 года система была добавлена в стандартное ядро Linux. И хотя система обладала большей стабильностью и занимала меньше дискового пространства под контрольные структуры — она оказалась слабее ext2, ведущую роль сыграли ограничения максимальных размеров файла и раздела, а так же способность к дальнейшему расширению.

UPD: ZFS (Zettabyte File System) — изначально созданная в Sun Microsystems файловая система, для небезызвестной операционной системы Solaris в 2005 году. Отличительные особенности — отсутствие фрагментации данных как таковой, возможности по управлению снапшотами (snapshots), пулами хранения (storage pools), варьируемый размер блоков, 64-х разрядный механизм контрольных сумм, а так же способность адресовать 128 бит информации! В Linux системах может использоваться посредствам FUSE.

75.ОС Linux. Файловые системы поддерживаемые этими ОС.

Linux — общее название UNIX-подобных операционных систем на основе одноимённого ядра и собранных для него библиотек и системных программ

Основные
ext2 Стандартная файловая система для жестких дисков в Linux.
ext3 Расширение файловой системы ext2 с добавлением журналирования.
ext4 Новое поколение файловой системы ext, базирующееся на коде ext3.
ReiserFS v3.x Журналируемая файловая система от Namesys, очень эффективно работает с большими каталогами и мелкими файлами.
ReiserFS v4 Новая версия файловой системы ReiserFS с поддержкой системы плагинов. На данный момент находится в разработке, поддержка в системе осуществляется специальными патчами.
XFS Высокопроизводительная файловая система от SGI, ориентированная на многопоточность и работу с большими файлами.
JFS Порт IBM'овской файловой системы на Linux.
BtrFS Новая файловая система для Linux от Oracle
OCFS2 Журналируемая файловая система разработанная Oracle Corporation. Использует менеджер распределенной блокировки, который похож на OpenVMS DLM но значительно проще.
NILFS2  
Для CD-ROM
iso9660 Стандартная файловая система для компакт-дисков с данными. Поддерживаются расширения MS Joliet 3, Rock Ridge, Compressed ISO
UDF Универсальный дисковый формат, применяется на DVD-дисках.
Windows-родственные
FAT12/16 Файловая система разработанная Microsoft. Использовалась в MS DOS. Максимальный размер тома 32 Мебибайта для FAT12 и 2 Гибибайта для FAT16
FAT32 Файловая система разработанная Microsoft. Использовалась в Windows 95/98/ME. Максимальный размер тома 8 Тебибайт.
NTFS Журналируемая файловая система от Microsoft, является основной ФС в текущих версиях Windows. Поддержку данной файловой системы в Linux лучше осуществлять через FUSE-модуль NTFS-3G (см. ниже)
Прочие файловые системы
ADFS Advanced Disc Filing System - файловая система, использующаяся в RISС-OS системах и компьютерах Acorn.
Amiga FFS Файловая система, используемая на компьютерах Amiga. Имеет поддержку длинных имен. Из-за побитовой записи на диск, при крахе ОС, ФС может испортиться.
eCryptFS Файловая система с асимметричным шифрованием файлов, наподобие GnuPG, только шифрование и расшифровка производится прозрачно для пользователя.
Apple HFS Hierarchical File System, иерархическая файловая система с 16 битной адресацией для MacOS. Максимальный размер тома 4 гигабайта.
Apple HFS+ Hierarchical File System, журналируемая иерархическая файловая система с 32 битной адресацией для MacOS.
BeFS файловая система, используемая в операционных системах BeOS. 64-битная журналируемая файловая система с поддержкой расширенных файловых атрибутов (метаданных), индексируемая, что приближает её функциональность к реляционным БД.
BFS  
EFS система шифрования данных, реализующая шифрование на уровне файлов в операционных системах Microsoft Windows NT (начиная с Windows 2000 и выше), за исключением " домашних" версий (Windows XP Home Edition, Windows Vista Basic и Windows Vista Home Premium). Данная система предоставляет возможность " прозрачного шифрования" данных, хранящихся на разделах с файловой системой NTFS.
LOGFS Файловая система для флеш-устройств, хорошо масштабирующаяся для больших устройств. В сравнении с JFFS2 более быстро монтируется и потребляет меньше оперативной памяти.
CramFS Compressed ROM file system (cramfs) — свободная сжатая файловая система для Linux для встраиваемых систем, использующих ПЗУ. Разработана для простоты обращения и эффективного использования свободного места. Cramfs доступна только для чтения, ограничена размером 256 МиБ для файловой системы (и 16 МиБ на файл), а также не поддерживает 16/32 битные uid/gid.
FreeVxFS Свободная реализация VERITAS(TM) Filesystem
Minix FS Файловая система для MINIX. Она копирует базовую структуру Unix File System.
SquashFS Файловая система, используемая для создания сжатых (gzip) образов, доступных только на чтение. Удобно использовать для архивации редко изменяемого и хорошо сжимаемого содержимого, например, offline-версий сайтов.
OS/2 HPFS High Perfomance File System, файловая система разработанная специалистами Microsoft и IBM. Максимальный размер файла в HPFS 2GB.
QNX4 FS Файловая система, используемая в ОС QNX.
ROM FS  
System V/Xenix/V7/Coherent FS  
UFS  
Сетевые
NFS 3 Network File System (NFS) — протокол сетевого доступа к файловым системам, первоначально разработан Sun Microsystems
NFS 4 Доработанная под влиянием AFS и CIFS версия протокола NFS, с улучшением производительности и более высокой безопасностью
CEPH FS Распределенная высокопроизводительная сетевая файловая система.
SMB FS SMB — сетевой протокол прикладного уровня для удалённого доступа к файлам, принтерам и другим сетевым ресурсам, а также для межпроцессного взаимодействия.
CIFS Дополненная версия протокола SMB, которая начала использоваться с Windows NT 4.0
NCP  
Coda FS  
Andrew FS  
FUSE-based
sshfs Позволяет монтировать удаленные каталоги через SSH-соединение. Для использования установить пакет sshfs.
curlftpfs Позволяет монтировать удаленные файловые системы по FTP-протоколу.
httpfs Аналогично curlftpfs, но для работы с файлами по HTTP-протоколу.
mhddfs Позволяет предоставлять дисковые ресурсы отдельных разделов как единое дисковое пространство с равномерным заполнением разделов. Подробнее читайте тут...
ntfs-3g Альтернативный, и, на данный момент, лучший драйвер для подключения NTFS-разделов в Linux. Для использования установить пакет ntfs-3g и монтировать разделы с -t ntfs-3g.
exFAT Драйвер для поддержки новой файловой системы от Microsoft, выпущенной как развитие FAT, но несовместимой с ней.
djmount Позволяет монтировать как файловую систему DLNA/UPnP-сервера

 

76.Диаграмма состояний процесса. Реализация понятия последовательного процесса в ОС. Процессы и тренды.

 

 

Новый процесс в ОС помещается в состояние «Процесс не выполняется». • После выбора ОС для исполнения по некоторому алгоритму процесса он переходит в состояние «Процесс исполняется». • Процесс из состояния «Процесс исполняется» может быть:

– завершен

– приостановлен

 

 

Чтобы ОС могла управлять процессами, она должна располагать полной

информацией о них. Для этого на каждый процесс заводится специальная

информационная структура, называемая дескриптором процесса (описателем задач,

блоком управления задачей). В общем случае дескриптор процесса содержит следующую

информацию:

- идентификатор процесса (PID);

- тип (класс) процесса, по которому супервизор определяет правила

обслуживания;

- приоритет процесса, по которому супервизор предоставляет ресурсы;

- переменную состояния (готов к работе, в состоянии выполнения, ожидание

устройства ввода/вывода и т.д.);

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

процесс прерывается, не закончив работу. Эта область называется контекстом

задачи;

- информацию о ресурсах, которыми процесс владеет или имеет право

пользоваться;

- место (или адрес) памяти для общения с другими процессами;

- параметры времени запуска;

- в случае отсутствия системы управления файлами – адрес задачи на диске в ее

исходном состоянии и адрес на диске, куда она выгружается из оперативной

памяти.

Описатели задач, как правило, располагаются в оперативной памяти для ускорения

работы супервизора. Для каждого состояния (кроме выполнения) ведется список задач.

Процесс (или по-другому, задача) - абстракция, описывающая выполняющуюся программу. Для операционной системы процесс представляет собой единицу работы, заявку на потребление системных ресурсов

В многозадачной (многопроцессной) системе процесс может находиться в одном из трех основных состояний:

ВЫПОЛНЕНИЕ - активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;

ОЖИДАНИЕ - пассивное состояние процесса, процесс заблокирован, он не может выполняться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса;

ГОТОВНОСТЬ - также пассивное состояние процесса, но в этом случае процесс заблокирован в связи с внешними по отношению к нему обстоятельствами: процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса.

Поток является последовательностью команд, обрабатываемыхпроцессором. В рамках одного процесса могут находиться один илинесколько потоков. Традиционный подход, при котором каждый про-цесс представляет собой единый поток выполнения, называется одно-поточным [3]. Например, MS-DOS поддерживает один однопоточ-ный пользовательский процесс. Некоторые ОС семейства UNIX под-держивают процессы множества пользователей, но при этом каждыйиз процессов содержит один поток. Многопоточностью(multithreading) называется способность ОС поддерживать в рамкаходного процесса выполнение нескольких потоков. Примерами много-поточных систем являются среда выполнения Java, Windows 2000, Linux, Solaris и другие.

При корректной реализации потоки имеют определенные преимущества перед процессами. Им требуется:

· меньше времени для создания нового потока, поскольку создаваемый поток использует адресное пространство текущего процесса;

· меньше времени для завершения потока;

· меньше времени для переключения между двумя потоками в пределах процесса;

· меньше коммуникационных расходов, поскольку потоки разделяют все ресурсы, и в частности адресное пространство. Данные, продуцируемые одним из потоков, немедленно становятся доступными всем другим потокам.

77. Стратегии управления памятью. Охарактеризовать существующие стратегии

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

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

 

78. ОС Windows XP. Архитектура системы

Ядро Windows 2000/XP состоит из нескольких системных компонент, каждая из которых отвечает за определенный набор задач. Основные компоненты ядра:
- микроядро (microkernel)2. Компактный код, можно сказать, сердце системы. В рамках микроядра работают ключевые службы: диспетчер памяти, диспетчер задач и др.;
- слой абстрагирования (Hardware Abstraction Layer, HAL). Полностью абстрагирует код системы от конкретного аппаратного оборудования.
- диспетчер ввода/вывода (Input/Output Manager). Полностью контролирует потоки обмена между системой и устройствами. Драйверы устройств работают в контексте I/O Manager. Поскольку они размещаются в ядре системы, следует относиться очень серьезно к их корректности. Если драйвер написан с ошибками и может привести к сбою? это вызовет фатальный крах ядра и всей системы. 70% случаев фатальных сбоев («синий экран»)? результат некорректного поведения драйверов устройств. У Windows XP есть встроенный механизм контроля драйверов: правильно написанный и тщательно протестированный драйвер поставляется с цифровой подписью (Driver Signing). Пользователь, конечно, может установить драйвер и без такой подписи, но риск разрушения системы в этом случае возрастает. Правильная настройка системы заключается в запрещении установки драйверов без корректной подписи;
- модули управления объектами (Object Manager), виртуальной памятью (Virtual Memory Manager), процессами (Process Manager), безопасностью (Security Reference Monitor), локальными вызовами (Local Procedure Calls Facilities)

Вот как выглядит альфа-версия Windows Longhorn. (Неофициальная информация) Особое место в ядре системы занимает модуль графического интерфейса? Win32k.sys. Это часть подсистемы Win32, отвечающая за прорисовку и управление графическим интерфейсом. Он расположен в ядре специально, чтобы существенно повысить производительность графических операций ввода/вывода. Однако размещение столь критической части в ядре накладывает чрезвычайно строгие требования к корректности его исполнения. Фактически, ошибка в коде Win32k.sys приведет к краху системы. Разработчики Windows уделяют огромное внимание этому модулю, и именно он наиболее тщательно протестирован. Пользователю нужно помнить об особенностях данного модуля и не нужно заменять его или внедрять на этот уровень сомнительный код. Опыт эксплуатации систем Windows показывает, код Win32k.sys работает абсолютно корректно и не содержит фатальных ошибок. Однако некорректный драйвер видеосистемы может привести систему к сбою.

 

79. Понятие последовательного процесса. Дескриптор процесса. Контекст задачи.

Последовательный процесс (иногда называемый «задачей») – это выполнение отдельной программы с её данными на последовательном процессоре. Концептуально процессор рас­сматривается в двух аспектах: во-первых, он является носителем данных и, во-вторых, он (одновременно) выполняет операции, связанные с их обработкой.

 

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

 

Контекст процесса содержит менее оперативную, но более объемную часть информации о процессе, необходимую для возобновления выполнения процесса с прерванного места: содержимое регистров процессора, коды ошибок выполняемых процессором системных вызовов, информацию о всех открытых данным процессом файлов и незавершенных операциях ввода-вывода (указатели на структуры file) и другие данные, характеризующие состояние вычислительной среды в момент прерывания. Контекст, так же как и дескриптор процесса, доступен только программам ядра, то есть находится в виртуальном адресном пространстве операционной системы, однако он хранится не в области ядра, а непосредственно примыкает к образу процесса и перемещается вместе с ним, если это необходимо, из оперативной памяти на диск. В UNIX для процессов предусмотрены два режима выполнения: привилегированный режим - " система" и обычный режим - " пользователь". В режиме " пользователь" запрещено выполнение действий, связанных с управлением ресурсами системы, в частности, корректировка системных таблиц, управление внешними устройствами, маскирование прерываний, обработка прерываний. В режиме " система" выполняются программы ядра, а в режиме " пользователь" - оболочка и прикладные программы. При необходимости выполнить привилегированные действия пользовательский процесс обращается с запросом к ядру в форме так называемого системного вызова. В результате системного вызова управление передается соответствующей программе ядра. С момента начала выполнения системного вызова процесс считается системным. Таким образом, один и тот же процесс может находиться в пользовательской и системной фазах. Эти фазы никогда не выполняются одновременно.

 

 

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

· выталкивание случайных страниц или сегментов;

· выталкивание первой пришедшей страницы или сегмента (FIFO);

· выталкивание дольше всего не использовавшихся страниц или сегментов (LRU);

· выталкивание наименее часто использовавшихся страниц или сегментов (LFU);

· выталкивание не использовавшихся в последнее время страниц или сегментов (NUR).

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

Стратегия выталкивания первой пришедшей страницы или сегмента (FIFO-стратегия) реализует принцип “первый пришел - первый ушел”. В этом случае в момент поступления каждой страницы (сегмента) в первичную память ей (ему) присваивается метка времени. Когда появляется необходимость удалить из первичной памяти какую-либо страницу (сегмент), выбирается та страница (сегмент), у которой метка времени имеет наименьшее значение. Аргументом в пользу такой стратегии выталкивания является довод, что у данной страницы уже были возможности “использовать свой шанс”, и пора дать подобные возможности другой странице. Однако стратегия FIFO с большой вероятностью будет приводить к удалению из первичной памяти активно используемых страниц (сегментов), поскольку тот факт, что страница (сегмент) находится в первичной памяти в течение длительного времени, вполне может означать, что эта страница или сегмент постоянно находится в работе.

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

Стратегия выталкивания реже всего используемых страниц или сегментов (LFU-стратегия) является одной из наиболее близких к рассмотренной выше LRU-стратегии. В соответствии с LFU-стратегией из первичной памяти выталкиваются наименее часто (наименее интенсивно) использовавшиеся к данному времени страницы или сегменты. Здесь контролируется интенсивность использования страниц (сегментов). Для этого каждой странице (сегменту) назначается счетчик, значение которого увеличивается на единицу при каждом обращении к данной странице (сегменту). LFU-стратегия, будучи интуитивно оправданной, имеет те же недостатки, что и стратегия LRU: во-первых, велика вероятность того, что из первичной памяти будут удалены страницы или сегменты, которые потребуются процессам при следующем обращении к памяти и, во-вторых, ее реализация может быть сопряжена со значительными затратами на организацию контроля интенсивности использования страниц или сегментов.

 

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

 

 

81. ОС Windows XP. Реализация планирования процессов и потоков.

Чтобы все потоки работали, операционная система отводит каждому из них определенное процессорное время. Тем самым создается иллюзия одновременного выполнения потоков (разумеется, для многопроцессорных компьютеров возможен истинный параллелизм). В Windows реализована система вытесняющего планирования на основе приоритетов, в которой всегда выполняется поток с наибольшим приоритетом, готовый к выполнению. Выбранный для выполнения поток работает в течение некоторого периода, называемого квантом. Квант определяет, сколько времени будет выполняться поток, пока операционная система не прервет его. По окончании кванта операционная система проверяет, готов ли к выполнению другой поток с таким же (или большим) уровнем приоритета. Если таких потоков не оказалось, текущему потоку выделяется еще один квант. Однако поток может не полностью использовать свой квант. Как только другой поток с более высоким приоритетом готов к выполнению, текущий поток вытесняется, даже если его квант еще не истек.

Квант не измеряется в каких бы то ни было единицах времени, а выражается целым числом. Для каждого потока хранится текущее значение его кванта. Когда потоку выделяется квант процессорного времени, это значит, что его квант устанавливается в начальное значение. Оно зависит от операционной системы. Например, для Win2000 Professional начальное значение кванта равно 6, а для Win2000 Server - 36.

Всякий раз, когда возникает прерывание от таймера, из кванта потока вычитается 3, и так до тех пор, пока он не достигнет нуля. Частота срабатывания таймера зависит от аппаратной платформы. Например, для большинства однопроцессорных x86 систем он составляет 10мс, а на большинстве многопроцессорных x86 систем - 15мс.

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

Планирование в Windows осуществляется на уровне потоков, а не процессов. Это кажется понятным, так как сами процессы не выполняются, а лишь предоставляют ресурсы и контекст для выполнения потоков. Поэтому при планировании потоков, система не обращает внимания на то, какому процессу они принадлежат. Например, если процесс А имеет 10 готовых к выполнению потоков, а процесс Б - два, и все 12 потоков имеют одинаковый приоритет, каждый из потоков получит 1/12 процессорного времени.

 

82. Прерывания. Механизм обработки прерываний. Внутренние и внешние прерывания. Распределение прерываний по уровню приоритета

 

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

 

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

Механизм обработки прерываний независимо от архитектуры вычислительной системы включает следующие элементы:

1. Установление факта прерывания (прием сигнала на прерывание) и идентификация прерывания (в операционных системах иногда осуществляется повторно, на шаге 4).

 

2. Запоминание состояния прерванного процесса. Состояние процесса определяется, прежде всего, значением счетчика команд, содержимым регистров процессора и может включать также спецификацию режима (например, режим пользовательский или привилегированный) и другую информацию.

3. Управление аппаратно передаётся подпрограмме обработки прерывания.

4. Сохранение информации о прерванной программе, которую не удалось спасти на шаге 2 с помощью действий аппаратуры. В некоторых вычислительных системах предусматривается запоминание довольно большого объёма информации о состоянии прерванного процесса.

5. Обработка прерывания. Эта работа может быть выполнена той же подпрограммой, которой было передано управление на шаге 3, но в ОС чаще всего она реализуется путем последующего вызова соответствующей подпрограммы.

6. Восстановление информации, относящейся к прерванному процессу (этап, обратный шагу 4).

7. Возврат в прерванную программу.

Шаги 1-3 реализуются аппаратно, а шаги 4-7 – программно.

Прерывания, возникающие при работе вычислительной системы, можно разде­лить на два основных класса:

1) внешние (их иногда называют асинхронными);

2) внутренние (синхронные).

 

Внешние прерывания вызываются асинхронными событиями, которые происхо­дят вне прерываемого процесса, например:

1) прерывания от таймера;

2) прерывания от внешних устройств (прерывания по вводу/выводу);

3) прерывания по нарушению питания;

4) прерывания с пульта оператора вычислительной системы;

5) прерывания от другого процессора или другой вычислительной системы.

Внутренние прерывания вызываются событиями, которые связаны с работой про­цессора и являются синхронными с его операциями. Примерами являются сле­дующие запросы на прерывания:

1) при нарушении адресации (в адресной части выполняемой команды указан запрещённый или несуществующий адрес, обращение к отсутствующему сег­менту или странице при организации механизмов виртуальной памяти);

2) при наличии в поле кода операции незадействованной двоичной комбинации;

3) при делении на нуль;

4) при переполнении или исчезновении порядка;

5) при обнаружении ошибок чётности, ошибок в работе различных устройств аппаратуры средствами контроля.

Сигналы, вызывающие прерывания, формируются вне процессора или в самом процессоре; они могут возникать одновременно. Выбор одного из них для обра­ботки осуществляется на основе приоритетов, приписанных каждому типу пре­рывания. Очевидно, что прерывания от схем контроля процессора должны обла­дать наивысшим приоритетом (если аппаратура работает неправильно, то не имеет смысла продолжать обработку информации). Учёт приоритета может быть встроен в технические средства, а также определяться операционной системой, то есть кроме аппаратно реализованных приоритетов прерывания большинство вычислительных машин и комплексов допускают программно-аппаратное управление порядком обработки сигналов прерывания. Второй способ, дополняя первый, позволяет применять различные дисциплины обслуживания прерываний.

 

 

83. Стратегии управления памятью. Вталкивание страниц

 

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

 

 

84. Windows XP. Программный интерфейс взаимодействия Win32 API.

 

Windows API — общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Microsoft Windows корпорации «Майкрософт». Является самым прямым способом взаимодействия приложений с Windows. Для создания программ, использующих Windows API, «Майкрософт» выпускает комплект разработчика программного обеспечения, который называется Platform SDK, и содержит документацию, набор библиотек, утилит и других инструментальных средств для разработки.

· Win32 — 32-разрядный API для современных версий Windows. Самая популярная ныне версия. Базовые функции реализованы в динамически подключаемых библиотеках kernel32.dll и advapi32.dll; базовые модули графического интерфейса пользователя — вuser32.dll и gdi32.dll. Win32 появился вместе с Windows NT и затем был перенесён в несколько ограниченном виде в системы серииWindows 9x. В современных версиях Windows, происходящих от Windows NT, работу Win32 GUI обеспечивают два модуля: csrss.exe(процесс исполнения клиент-сервер), работающий в пользовательском режиме, и win32k.sys в режиме ядра. Работу же системы обеспечивает ядро — ntoskrnl.exe.

85. Прерывание и обработчики. Неупорядоченная/упорядоченная обработка прерываний. Что такое вектор прерываний?

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

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

Вектор прерывания — закреплённый за устройством номер, который идентифицирует соответствующий обработчик прерываний. Векторы прерываний объединяются в таблицу векторов прерываний, содержащую адреса обработчиков прерываний. Местоположение таблицы зависит от типа и режима работы процессора.

 

 

86. Стратегии управления памятью. Замещение страниц.

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

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

 

Для реализации глобального замещения необходимо выбрать правило, в соответствии с которым, будет приниматься решение о том, какие страницы хранить в памяти. В идеале нужно хранить только те страницы, которые будут использованы вскоре. Этот набор страниц получил название рабочего набора (working set) процесса.

Обычно для замещения страниц применяется правило наименее частого использования (LRU). При этом удаляются те страницы, к которым доступ давно не производился.

 

 

87.ОС Windows XP. Файловые системы поддерживаемые этими ОС

 

1.fat12

2.fat16

3.vfat

4.fat32

5. ntfs

 

Существует три версии FAT — FAT12, FAT16 и FAT32. Они отличаются разрядностью записей в дисковой структуре, то есть количеством бит, отведённых для хранения номера кластера. FAT12 применяется в основном для дискет, FAT16 — для дисков малого объёма. На основе FAT была разработана новая файловая система exFAT (extended FAT), используемая преимущественно для флеш-накопителей.

Изначально FAT не поддерживала иерархическую систему каталогов. Все файлы располагались в корневом каталоге. Это оказалось неудобно и к тому же малый размер корневого каталога ограничивал количество файлов на диске. Каталоги были введены с выходом MS-DOS 2.0.

В различных операционных системах также были внедрены различные расширения FAT. Например, в DR-DOS имеются дополнительные атрибуты доступа к файлам; в Windows 95, Linux — поддержка длинных имён файлов (LFN) в формате Unicode (Virtual FAT — VFAT); в OS/2 — расширенные атрибуты всех файлов.

VFAT — это расширение FAT, появившееся в Windows 95. В FAT имена файлов имеют формат 8.3 и состоят только из символов кодировки ASCII. В VFAT была добавлена поддержка длинных (до 255 символов) имён файлов (англ. Long File Name, LFN) в кодировке UTF-16LE, при этом LFN хранятся одновременно с именами в формате 8.3, ретроспективно называемыми SFN (англ. Short File Name). LFN нечувствительны к регистру при поиске, однако, в отличие от SFN, которые хранятся в верхнем регистре, LFN сохраняют регистр символов, указанный при создании файла

 

NTFS (аббревиатура от англ. new technology file system — «файловая система новой технологии») — стандартная файловая система для семейства операционных систем Windows NT фирмы Microsoft.

NTFS поддерживает хранение метаданных. С целью улучшения производительности, надёжности и эффективности использования дискового пространства для хранения информации о файлах в NTFS используются специализированные структуры данных. Информация о файлах хранится в главной файловой таблице — Master File Table (MFT). NTFS поддерживает разграничение доступа к данным для различных пользователей и групп пользователей (списки контроля доступа — англ. access control lists, ACL), а также позволяет назначать дисковые квоты[en] (ограничения на максимальный объём дискового пространства, занимаемый файлами тех или иных пользователей). Для повышения надёжности файловой системы в NTFS используется система журналирования USN. Для NTFS размер кластера по умолчанию составляет от 512 байт до 64 КБ в зависимости от размера тома и версии ОС

HPFS (аббр. от англ. High Performance File System) — файловая система, разработанная специалистами Microsoft и IBM на основе опыта IBM по созданию файловых систем MVS, VM и виртуального метода доступа. Со стороны Microsoft проектом руководил опытный системный программистГордон Летвин (англ.).

Впервые поддержка HPFS появилась в операционной системе OS/2 версии 1.2. С тех пор штатная поддержка HPFS присутствует во всех версияхOS/2. В Windows NT поддержка HPFS существовала до версии 3.51 включительно (хотя есть успешные прецеденты использования старого драйвера HPFS в Windows NT 4.0 и даже Windows 2000). Впоследствии Microsoft отказалась от HPFS в пользу собственной файловой системыNTFS, при разработке которой был учтён опыт создания HPFS.

В OS/2 существует серверный вариант драйвера для HPFS, называемый HPFS386, который обладает некоторыми дополнительными возможностями.

88. Какой тип системы прерываний – векторный или опрашиваемый – реализован в процессоре Pentium?

 

Чтобы значительно уменьшить время реакции на внешние события, используются многоуровневые или, что то же самое, векторные прерывания. В векторных прерываниях КАЖДОМУ источнику прерывания соответствует СВОЙ, вполне определенный, адрес процедуры обработки прерывания, который принято называть вектором прерывания.

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

89. Управление вводом/выводом. Основная концепция обеспечения ввода – вывода

Основные концепции организации ввода-вывода в операционных системах 133

 

1. Модуль супервизора операционной системы, иногда называемый супервизором задач, получает запросы от прикладных задач на выполнение тех или иных опе­раций, в том числе на ввод-вывод. Эти запросы проверяются на корректность и, если они соответствуют спецификациям и не содержат ошибок, то обрабатыва-

 

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

2. Супервизор ввода-вывода получает запросы на ввод-вывод от супервизора за­
дач или от программных модулей самой операционной системы.

3. Супервизор ввода-вывода вызывает соответствующие распределители каналов
и контроллеров, планирует ввод-вывод (определяет очередность предоставле­
ния устройств ввода-вывода задачам, затребовавшим эти устройства). Запрос
на ввод-вывод либо тут же выполняется, либо ставится в очередь на выполне­
ние.

4. Супервизор ввода-вывода инициирует операции ввода-вывода (передает уп­
равление соответствующим драйверам) и в случае управления вводом-выво­
дом с использованием прерываний предоставляет процессор диспетчеру задач
с тем, чтобы передать его первой задаче, стоящей в очереди на выполнение.

5. При получении сигналов прерываний от устройств ввода-вывода супервизор
идентифицирует эти сигналы (см. раздел «Прерывания» в главе 1) и передает
управление соответствующим программам обработки прерываний.

6. Супервизор ввода-вывода осуществляет передачу сообщений об ошибках, если
таковые происходят в процессе управления операциями ввода-вывода.

7. Супервизор ввода-вывода посылает сообщения о завершении операции ввода-
вывода запросившей эту операцию задаче и снимает ее с состояния ожидания
ввода-вывода, если задача ожидала завершения операции.

В случае, если устройство ввода-вывода является инициативным1, управление со стороны супервизора ввода-вывода будет заключаться в активизации соответству­ющего вычислительного процесса (перевод его в состояние готовности к выполне­нию).

90. Файловые системы FAT и ufs, s5 имеют служебные таблицы (FAT с индексами и область индексных дескрипторов). Чем отличается адресация кластеров в этих файловых системах?

 

91. Переключение контекста процессов. Использование PSW

 

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

В процедуру переключения контекста входит т. н. планирование задачи — процесс принятия решения к какой задаче передать управление.

 

92. Режимы ввода/вывода. Прерывания или опрос готовности устройства

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

Используют 2 основных подхода к выделению адресов

§ Фиксированная адресация, когда одно и тоже устройство всегда имеет один и тот же адрес реестра.

§ Географическая, когда каждому разъёму периферической шины соответствует свой диапазон адресов.

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

Большинство периферийных шин современных компьютеров (PSI) организуют географическую адресацию. Многие операционные системы требуют, чтобы устройства имели конфигурационные регистры через обращение к которым операционная система может выдать информацию об устройстве:

1. фирму изготовителя

2. модель

3. версию

4. количество регистров

Наличие регистров позволяет операционной системе автоматически определять установленное оборудование и подгружать соответствующие управляющие модули.

Управление вводом/выводом осуществляется операционной системой, точнее компонентом, который называют подсистема ввода/вывода - диспетчером или супервизором ввода/вывода. Этот компонент выполняет следующие задачи:

1. Получает запросы на ввод/вывод прикладных задач и программных модулей самой системы. Проверяет их корректность и выдает соответствующее диагностическое сообщение.

2. Определяет очередность предоставления устройств ввода/вывода задачам затребовавшим их.

3. Инициирует ввод/вывод (передает управление соответствующим драйверам) и в случае выполнения ввода/вывода с использованием прерывания передает управление диспетчеру задач. Чтобы он передал его первой задаче, стоящей в очереди на выполнение.

4. Идентифицирует сигналы прерывания от устройств ввода/вывода и передает управление соответствующей программе обработки прерывания.

5. Передает сообщения об ошибках, случившихся в процессе ввода/вывода.

6. Посылает сообщение о завершении операции ввода /вывода, запросившему эту операцию процессу и снимает его с состояния ожидания ввода/вывода, Если процесс ждал завершение операции.

Существует 2 основных режима ввода/вывода

1. режим обмена опросом готовности устройства ввода/вывода

 

2. режим обмена с прерыванием

Для организации ввода/вывода по 1 варианту процессор посылает устройству управления команду для устройства ввода/вывода выполнить некоторое действие. Устройство управления выполнит команду преобразования, её сигналы управления, которое оно передает устройству ввода/вывода. Поскольку быстродействие устройства ввода/вывода меньше на несколько порядков устройства быстродействия процессора, то драйвер управляющий обилием данных с внешних устройств вынужден в цикле опрашивать готовность устройств. При этом нерационально используется время процессора. Выгоднее после команды ввода/вывода перейти на выполнение другой команды, а появление сигнала готовности трактовать как запрос на прерывание. Драйверы работающие в режиме прерывания представляют собой сложный комплекс программных модулей и имеют несколько секций:

· секция запуска

· секция продолжения

· секция завершения

Секция запуска запускается для включения устройств ввода/вывода либо для инициализации очередной операции ввода/вывода.

Секция продолжения осуществляет основную работу по передаче данных

Секция завершения выключает устройства ввода/вывода либо просто завершает операцию.

Управление операциями ввода/вывода в режиме прерывания требует более сложных программ чем те, что работают в режиме опроса готовности.

Так, в операционных системах Windows 95, 98 и Windows NT драйвер печати через параллельный код работает не в режиме прерывания, а в режиме опроса готовности, что приводит к 100% загрузке процессора на все время печати. Для организации и выполнения многие параллельно выполняющиеся задачи устройств ввода/вывода вводится понятие виртуального устройства, повышающего эффективность вычислительных систем. Примером служит spooling, то есть имитация работы с устройством в режиме on-line.Главная задача spoolingа – создать единицу параллельно выполняемого устройства ввода/вывода с последовательным доступом.

.

93. Файловая система NTFS содержит основной файл MFT, который состоит из записей. Чему соответствует запись номер ноль?

 

 

95. Создание и завершение процессов. Управление адресным пространством.

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.057 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал