Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Виртуальная память (virtual memory) организуется операционной системой за счет использования дополнительно к оперативной памяти некоторого количества памяти на внешнем запоминающем устройстве. Быстрота виртуальной памяти во многом определяется скоростью обмена с внешним устройством и скоростью самого устройства. Следовательно, чем больше реально оперативная память, тем меньше происходит обращений к медленным внешним устройствам и тем быстрее оказывается работа программ.
Такая организация памяти позволяет данные, не используемые в настоящий момент времени, спрятать, например, на жестком диске, освободив, таким образом, участок в быстрой оперативной памяти. В тот момент, когда спрятанные данные потребуются программе для работы, операционная система найдет их на диске, достанет и разместит на прежнем месте в оперативной памяти. Непосредственно перед этим данные из этой части памяти будут перенесены на жесткий диск. Данные между внутренней и внешней памятью пересылаются блоками определенного размера - страницами. Для хранения временно неиспользуемых данных на диске резервируется место, обычно называемое файлом подкачки, пэйдж-файл (pagefile) или своп-файл (swapfile). Практически во всех современных операционных системах программы работают с виртуальной памятью.
Принцип работы виртуальной памяти
51. Одноуровневая и двухуровневая таблицы страниц. Схема вычисления адреса памяти с использованием таблицы каталогов и таблицы страниц.
52. Оценка затрат памяти при использовании двухуровневой таблицы страниц.
53. Оптимальный размер страницы виртуальной памяти.
54. Алгоритмы замещения страниц виртуальной памяти.
55. Назначение файловой системы.
• распределение дисковой памяти;
• именование файлов;
• отображение имен файлов в соответствующие адреса во внешней памяти;
• доступ к данным;
• разделение, защита и восстановление файлов;
• шифрование данных;
• дефрагментация.
56. Состав файловой системы. Этапы эволюции файловых систем.
• совокупность всех файлов на диске;
• структуры данных, используемые для управления файлами (каталоги, дескрипторы файлов, таблицы распределения свободного и занятого пространст-ва на диске, дефектных участков магнитного диска);
• комплекс системных программных средств, реализующих различные операции над файлами и каталогами: создание, уничтожение, чтение, запись, переименование, поиск, шифрование и т.д.
• файловые системы со сквозной записью (MS DOS) – 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 — сокращение от Filesystem Hierarchy Standard, что в переводе 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 | Каталог для важнейших системных утилит (название каталога - сокращение от "system binaries"): в дополнение к утилитам /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 (биты доступа, команды управления доступом).
Права доступа к файлам
В свою очередь файлы имеют двух владельцев: пользователя (user owner)
и группу пользователей (group owner). Для каждого файла есть
индивидуальные права доступа, которые разбиты на три группы:
1. Доступ для пользователя-владельца файла (owner).
2. Доступ для группы-владельца файла (group).
3. Доступ для остальных пользователей (others).
Для каждой категории устанавливаются три вида доступа: (x) - право на
запуск файла, (r) - право на чтение файла, (w) - право на изменение
(редактирование) файла.
Для того, чтобы увидеть права доступа к файлам необходимо ввести
команду ls с ключом -l:
60. Управление процессами в ОС Linux. Команды управления процессами. Уровни приоритета процесса. Изменение приоритета. Виртуальная ФС /proc.
Процесс в Linux (как и в UNIX) - это программа, которая выполняется в отдельном виртуальном адресном пространстве. Когда пользователь регистрируется в системе, автоматически создается процесс, в котором выполняется оболочка (shell), например, /bin/bash.
В Linux поддерживается классическая схема мультипрограммирования. Linux поддерживает параллельное (или квазипараллельного при наличии только одного процессора) выполнение процессов пользователя. Каждый процесс выполняется в собственном виртуальном адресном пространстве, т.е. процессы защищены друг от друга и крах одного процесса никак не повлияет на другие выполняющиеся процессы и на всю систему в целом. Один процесс не может прочитать что-либо из памяти (или записать в нее) другого процесса без "разрешения" на то другого процесса. Санкционированные взаимодействия между процессами допускаются системой.
Ядро предоставляет системные вызовы для создания новых процессов и для управления порожденными процессами. Любая программа может начать выполняться только если другой процесс ее запустит или произойдет какое-то прерывание (например, прерывание внешнего устройства).
В связи с развитием SMP (Symmetric Multiprocessor Architectures) в ядро Linux был внедрен механизм нитей или потоков управления (threads). Нить - это процесс, который выполняется в виртуальной памяти, используемой вместе с другими нитями процесса, который обладает отдельной виртуальной памятью.
Если интерпретатору (shell) встречается команда, соответствующая выполняемому файлу, интерпретатор выполняет ее, начиная с точки входа (entry point). Для С-программ entry point - это функция main. Запущенная программа тоже может создать процесс, т.е. запустить какую-то программу и ее выполнение тоже начнется с функции main.
Для создания процессов используются два системных вызова: fork() и exec. fork() создает новое адресное пространство, которое полностью идентично адресному пространству основного процесса. После выполнения этого системного вызова мы получаем два абсолютно одинаковых процесса - основной и порожденный. Функция fork() возвращает 0 в порожденном процессе и PID (Process ID - идентификатор порожденного процесса) - в основном. PID - это целое число.
Теперь, когда мы уже создали процесс, мы можем запустить программу с помощью вызова exec. Параметрами функции exec является имя выполняемого файла и, если нужно, параметры, которые будут переданы этой программе. В адресное пространство порожденного с помощью fork() процесса будет загружена новая программа и ее выполнение начнется с точки входа (адрес функции main).
Файловая система /proc является механизмом для ядра и его модулей, позволяющим посылать информацию процессам (отсюда и название /proc). С помощью этой виртуальной файловой системы Вы можете работать с внутренними структурами ядра, получать полезную информацию о процессах и изменять установки (меняя параметры ядра) на лету. Файловая система /proc располагается в памяти в отличие от других файловых систем, которые располагаются на диске.
Дата публикования: 2014-11-03; Прочитано: 458 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!