- •Перенаправление ввода/вывода и конвейеризация (композиция) команд
- •Команда copy
- •Команда dir
- •Команда type
- •Примеры команды Type
- •1.1.12.1. Проверка значения переменной
- •1.1.12.2. Проверка существования заданного файла
- •1.1.12.3. Проверка наличия переменной среды
- •1.1.12.4. Проверка кода завершения предыдущей команды
- •1.1.13.1. Цикл for … in … do …
- •1.1.13.2. Цикл for /d … in … do …
- •1.1.13.3. Цикл for /r … in … do …
- •1.1.13.4. Цикл for /l … in … do …
- •1.1.13.5. Цикл for /f … in … do …
- •1.1.13.6. Циклы и связывание времени выполнения для переменных
- •Команда Findstr и ее использование в цикле
- •11. Ядро и вспомогательные модули ос.
- •12.Архитектура ос с ядром в привилегированном режиме.
- •13.Многослойная структура ядра ос.
- •14. Типовые средства аппаратной поддержки ос.
- •15 Переносимость ос и средства ее достижения. Совместимость приложений: двоичная совместимость и совместимость на уровне исходных текстов. Примеры использования средств обеспечения совместимости.
- •16. Ос с монолитным ядром. Состав монолитного ядра. Достоинства и недостатки.
- •17. Микроядерная архитектура ос. Реализация системного вызова. Преимущества и недостатки микроядерной архитектуры ос.
- •18 Мультипроцессорная обработка. Симметричная и асимметричная архитектуры
- •1.2. Оценка достигаемого выигрыша в производительности – закон Амдала
- •В данном уравнении V – выигрыш в производительности при использовании n ядер центрального процессора, s – время, потраченное на выполнение последовательной части параллельной версии.
- •1.3. Оценка трудоемкости алгоритма
- •21 . Создание процессов (действия, выполняемые ос).
- •1.1.1 Использование функций CreateToolHelp32Snapshot () и Process32xxxx() для получения списка имен процессов
- •Физический адрес
Физический адрес
Таблица каталогов
Таблица страниц
Билет 50. Схема работы виртуальной памяти
Виртуальная память (virtual memory) организуется операционной системой за счет использования дополнительно к оперативной памяти некоторого количества памяти на внешнем запоминающем устройстве. Быстрота виртуальной памяти во многом определяется скоростью обмена с внешним устройством и скоростью самого устройства. Следовательно, чем больше реально оперативная память, тем меньше происходит обращений к медленным внешним устройствам и тем быстрее оказывается работа программ.
Такая организация памяти позволяет данные, не используемые в настоящий момент времени, спрятать, например, на жестком диске, освободив, таким образом, участок в быстрой оперативной памяти. В тот момент, когда спрятанные данные потребуются программе для работы, операционная система найдет их на диске, достанет и разместит на прежнем месте в оперативной памяти. Непосредственно перед этим данные из этой части памяти будут перенесены на жесткий диск. Данные между внутренней и внешней памятью пересылаются блоками определенного размера - страницами. Для хранения временно неиспользуемых данных на диске резервируется место, обычно называемое файлом подкачки, пэйдж-файл (pagefile) или своп-файл (swapfile). Практически во всех современных операционных системах программы работают с виртуальной памятью.
Принцип работы виртуальной памяти
Билет 51. Одноуровневая и двухуровневая таблицы страниц. Схема вычисления адреса памяти с использованием таблицы каталогов и таблицы страниц.
Билет 52. Оценка затрат памяти при использовании двухуровневой таблицы страниц.
Билет 53. Оптимальный размер страницы виртуальной памяти.
Билет 54. Алгоритмы замещения страниц виртуальной памяти.
Билет 55. Назначение файловой системы.
распределение дисковой памяти;
именование файлов;
отображение имен файлов в соответствующие адреса во внешней памяти;
доступ к данным;
разделение, защита и восстановление файлов;
шифрование данных;
дефрагментация.
Билет 56. Состав файловой системы. Этапы эволюции файловых систем.
совокупность всех файлов на диске;
структуры данных, используемые для управления файлами (каталоги, дескрипторы файлов, таблицы распределения свободного и занятого пространст-ва на диске, дефектных участков магнитного диска);
комплекс системных программных средств, реализующих различные операции над файлами и каталогами: создание, уничтожение, чтение, запись, переименование, поиск, шифрование и т.д.
файловые системы со сквозной записью (MSDOS) – 1981 - 2000 г.г.;
файловые системы с отложенной записью (ext2fs) – 1990-1995 г.г.;
журналируемые файловые системы (NTFS, ext3fs, ext4fs, reiserfsи др.) -
с 1993 г. по настоящее время.
Билет 57. Файловые системы ОС MS Windows – cравнительный анализ характеристик и области применения.
FAT (FAT12, FAT16, FAT32, extFAT)
NTFS
CDFS
UDF
ReFS - начиная с Win 8
Билет 58. Файловые системы ОС Linux. Стандарт FHS. Основные каталоги файловой системы ОС Linux. Наиболее существенные отличие ФС ОС Windows и Linux.
FHS — сокращение от FilesystemHierarchyStandard, что в переводе c английского означает «Стандарт иерархии файловой системы». Этот стандарт принят для унификации местонахождения файлов и директорий с общим назначением в файловой системе ОСUNIX. На данный момент большинство UNIX-подобных систем в той или иной степени следует этим правилам. Например, обычная база данных о пользователях всегда хранится в файле /etc/passwd.
/bin |
Название этого каталога происходит от слова "binaries" ("двоичные", "исполняемые"). В этом каталоге находятся исполняемые файлы самых необходимых утилит, которые могут понадобиться системному администратору или другим пользователям. |
/boot |
"Boot" - загрузка системы. В этом каталоге находятся файлы, необходимые для загрузки ядра - и, обычно, само ядро. Пользователю практически никогда не требуется непосредственно работать с этими файлами. |
/dev |
В этом каталоге находятся все имеющиеся в системе файлы особого типа, предназначенные для обращения к различным системным ресурсам и устройствам. Например, файлы/dev/ttyN соответствуют виртуальным консолям, где N - номер виртуальной консоли. Данные, введенные пользователем на первой виртуальной консоли, система считывает из файла/dev/tty1; в этот же файл записываются данные, которые нужно вывести пользователю на эту консоль. В специаьныхфайлах в действительности не хранятся никакие данные, при их помощи данные передаются. |
/etc |
Каталог для системных конфигурационных файлов. Здесь хранится информация о специфических настройках данной системы: информация о зарегистрированных пользователях, доступных ресурсах, настройках различных программ. |
/home |
Здесь расположены каталоги, принадлежащие пользователям системы - домашние каталоги, отсюда и название "home". Отделение всех файлов, создаваемых пользователями, от прочих системных файлов дает очевидное преимущество: серьезное повреждение системы или необходимость обновления не затронет пользовательских файлов. |
/lib |
Название этого каталога - сокращение от "libraries" (англ. "библиотеки"). Чтобы не включать эти функции в текст каждой программы, используются стандартные функции библиотек - это значительно экономит место на диске и упрощает написание программ. В этом каталоге содержатся библиотеки, необходимые для работы наиболее важных системных утилит, размещенных в /bin и /sbin. |
/mnt |
Каталог для монтирования (от англ. "mount") - временного подключения файловых систем, например, на съемных носителях (CD-ROM и др.). |
/proc |
В этом каталоге все файлы "виртуальные" - они располагаются не на диске, а в оперативной памяти. В этих файлах содержится информация о программах (процессах), выполняемых в данный момент в системе. |
/root |
Домашний каталог администратора системы - пользователя root. Смысл размещать его отдельно от домашних каталогов остальных пользователей состоит в том, что /home может располагаться на отдельном устройстве, которое не всегда доступно (например, на сетевом диске), а домашний каталогroot должен присутствовать в любой ситуации. |
/sbin |
Каталог для важнейших системных утилит (название каталога - сокращение от "systembinaries"): в дополнение к утилитам /bin здесь находятся программы, необходимые для загрузки, резервного копирования, восстановления системы. Полномочия на исполнение этих программ есть только у системного администратора. |
/tmp |
Этот каталог предназначен для временных файлов: в таких файлах программы хранят необходимые для работы промежуточные данные. После завершения работы программы временные файлы теряют смысл и должны быть удалены. Обычно каталог/tmp очищается при каждой загрузке системы. |
/usr |
Здесь можно найти такие же подкаталогиbin, etc, lib, sbin, как и в корневом каталоге. Однако в корневой каталог попадают только утилиты, необходимые для загрузки и восстановления системы в аварийной ситуации - все остальные программы и данные располагаются в подкаталогах/usr. Этот раздел файловой системы может быть очень большим. |
/var |
Название этого каталога - сокращение от "variable" ("переменные" данные). Здесь размещаются те данные, которые создаются в процессе работы разными программами и предназначены для передачи другим программам и системам (очереди печати, электронной почты и др.) или для сведения системного администратора (системные журналы, содержащие протоколы работы системы). В отличие от каталога/tmp сюда попадают те данные, которые могут понадобиться после того, как создавшая их программа завершила работу. Linux и Windows используют разные файловые системы для хранения и организации доступа к информации на дисках. Как вы наверно знаете, на сегодняшний день для Windows наиболее распространенными системами являются FAT 32 и NTFS. NTFS - более "продвинутая" система, одной из особенностей которой является обеспечение более высокой скорости работы на дисках относительно больших размеров. Однако NTFS несовместима с Windows 98 и более ранними версиями Windows. В Linux используются другие файловые системы. В основном, это Ext2 и Ext3 (вторая и третья расширенные файловые системы). Ext3 - это таже Ext2, однако имеющая ряд модернизаций, одной из которых является поддержка журналирования. Журналируемая файловая система сначала записывает изменения, которые она будет проводить в отдельную часть файловой системы (журнал) и только потом вносит необходимые изменения в остальную часть файловой системы. После удачного выполнения планируемых изменений, записи удаляются из журнала. Все это обеспечивает лучшее сохранение целостности системы и уменьшает вероятность потери данных, особенно в случае непредвиденного выключения компьютера.
|
Билет 59. Управление доступом к файлам в ОС Linux (биты доступа, команды управления доступом).
Права доступа к файлам
В свою очередь файлы имеют двух владельцев: пользователя (userowner)
и группу пользователей (groupowner). Для каждого файла есть
индивидуальные права доступа, которые разбиты на три группы:
1. Доступ для пользователя-владельца файла (owner).
2. Доступ для группы-владельца файла (group).
3. Доступ для остальных пользователей (others).
Для каждой категории устанавливаются три вида доступа: (x) - право на
запуск файла, (r) - право на чтение файла, (w) - право на изменение
(редактирование) файла.
Для того, чтобы увидеть права доступа к файлам необходимо ввести
команду ls с ключом -l:
Билет 60. Управление процессами в ОС Linux. Команды управления процессами. Уровни приоритета процесса. Изменение приоритета. Виртуальная ФС /proc.
Процесс в Linux (как и в UNIX) - это программа, которая выполняется в отдельном виртуальном адресном пространстве. Когда пользователь регистрируется в системе, автоматически создается процесс, в котором выполняется оболочка (shell), например, /bin/bash.
В Linux поддерживается классическая схема мультипрограммирования. Linux поддерживает параллельное (или квазипараллельного при наличии только одного процессора) выполнение процессов пользователя. Каждый процесс выполняется в собственном виртуальном адресном пространстве, т.е. процессы защищены друг от друга и крах одного процесса никак не повлияет на другие выполняющиеся процессы и на всю систему в целом. Один процесс не может прочитать что-либо из памяти (или записать в нее) другого процесса без "разрешения" на то другого процесса. Санкционированные взаимодействия между процессами допускаются системой.
Ядро предоставляет системные вызовы для создания новых процессов и для управления порожденными процессами. Любая программа может начать выполняться только если другой процесс ее запустит или произойдет какое-то прерывание (например, прерывание внешнего устройства).
В связи с развитием SMP (SymmetricMultiprocessorArchitectures) в ядро Linux был внедрен механизм нитей или потоков управления (threads). Нить - это процесс, который выполняется в виртуальной памяти, используемой вместе с другими нитями процесса, который обладает отдельной виртуальной памятью.
Если интерпретатору (shell) встречается команда, соответствующая выполняемому файлу, интерпретатор выполняет ее, начиная с точки входа (entrypoint). Для С-программ entrypoint - это функция main. Запущенная программа тоже может создать процесс, т.е. запустить какую-то программу и ее выполнение тоже начнется с функции main.
Для создания процессов используются два системных вызова: fork() и exec. fork() создает новое адресное пространство, которое полностью идентично адресному пространству основного процесса. После выполнения этого системного вызова мы получаем два абсолютно одинаковых процесса - основной и порожденный. Функция fork() возвращает 0 в порожденном процессе и PID (Process ID - идентификатор порожденного процесса) - в основном. PID - это целое число. Теперь, когда мы уже создали процесс, мы можем запустить программу с помощью вызова exec. Параметрами функции exec является имя выполняемого файла и, если нужно, параметры, которые будут переданы этой программе. В адресное пространство порожденного с помощью fork() процесса будет загружена новая программа и ее выполнение начнется с точки входа (адрес функции main).
Файловая система /proc является механизмом для ядра и его модулей, позволяющим посылать информацию процессам ( отсюда и название /proc ). С помощью этой виртуальной файловой системы Вы можете работать с внутренними структурами ядра, получать полезную информацию о процессах и изменять установки ( меняя параметры ядра ) на лету. Файловая система /proc располагается в памяти в отличие от других файловых систем, которые располагаются на диске.
