рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Экономики, статистики и информатики

Экономики, статистики и информатики - раздел Информатика, Министерство Образования Российской Федерации...

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Московский государственный университет

Экономики, статистики и информатики

Институт "Московская высшая банковская школа"

Кондратьев В.К.

Головина О.С.

ОПЕРАЦИОННЫЕ СИСТЕМЫ И ОБОЛОЧКИ

Москва 2002 г.

Головина О.С., Кондратьев В.К. Операционные системы и оболочки. /Моск. гос. ун-т экономики, статистики и информатики. – М., 2002. – 108 с. Книга содержит сведения для первоначального изучения с операционных системам,

Оглавление

ОПЕРАЦИОННЫЕ СИСТЕМЫ И СРЕДЫ ..........................................6

1.1 Введение .............................................................................................................................6

1.2 Основные понятия .............................................................................................................7

1.2.1 Понятие операционной среды ...................................................................................7

1.2.2. Понятие вычислительного процесса и ресурса.......................................................8

1.2.3 Динамика состояния процесса............................................................................9

1.2.4 Реализация понятия последовательного процесса в ОС ................................10

1.2.5 Процессы и треды .....................................................................................................10

1.2.6 Прерывания ...............................................................................................................11

1.2.7 Основные виды ресурсов .........................................................................................14

1.3. Классификация операционных систем ........................................................................16

1.4. Вопросы к главе 1 ...........................................................................................................18

УПРАВЛЕНИЕ ЗАДАЧАМИ И ПАМЯТЬЮ В ОПЕРАЦИОННЫХ

СИСТЕМАХ................................................................................................18

2.1. Планирование и диспетчеризация процессов и задач.................................................19

2.1.1. Стратегия планирования .........................................................................................19

2.1.2. Дисциплины диспетчеризации ...............................................................................19

2.1.3. Вытесняющие и не вытесняющие алгоритмы диспетчеризации ........................21

2.1.4. Качество диспетчеризации и гарантии обслуживания.........................................21

2.1.5. Диспетчеризация задач с использованием динамических приоритетов ............22

2.2. Память и отображение, виртуальное адресное пространство ....................................23

2.3. Вопросы к главе 2 ......................................................................................................25

3. УПРАВЛЕНИЕ ВВОДОМ/ВЫВОДОМ И ФАЙЛОВЫЕ СИСТЕМЫ

........................................................................................................................26

3.1. Основные понятия и концепции организации ввода/вывода в ОС............................26

3.2. Функции файловой системы ОС и иерархия данных..................................................28

3.3. Файловые системы FAT, FAT32, NTFS и s5 ................................................................29

3.3.1. Файловая система FAT............................................................................................29

3.3.2. Файловая система FAT32........................................................................................30

3.3.3. Файловая система NTFS..........................................................................................31

3.3.4. Файловая система s5 операционной системы UNIX System V ...........................32

3.4. Вопросы к главе 3 ...........................................................................................................33

АРХИТЕКТУРА ОПЕРАЦИОННЫХ СИСТЕМ. ..............................34

4.1. Основные принципы построения операционных систем ...........................................34

4.1.1. Принцип модульности.............................................................................................34

4.1.2. Принцип функциональной избирательности ........................................................34

4.1.3. Принцип генерируемости ОС .................................................................................34

4.1.4. Принцип функциональной избыточности .............................................................35

4.1.5. Принцип виртуализации .........................................................................................35

4.1.6. Принцип независимости программ от внешних устройств .................................36

4.1.7. Принцип совместимости .........................................................................................36

4.1.8. Принцип открытой и наращиваемой ОС ...............................................................37

4.1.9. Принцип модульности (переносимости) ...............................................................37

4.1.10. Принцип обеспечения безопасности вычислений ..............................................37

4.2. Микроядерные операционные системы........................................................................38

4.3. Монолитные операционные системы ...........................................................................39

4.4. Требования, предъявляемые к ОС реального времени ...............................................39

4.5. Принципы построения интерфейсов операционных систем ......................................41

4.6. Вопросы к главе 4 ...........................................................................................................42

ОПЕРАЦИОННЫЕ СИСТЕМЫ WINDOWS .....................................42

5.1. Операционные системы Windows .................................................................................43

5.1.1. Перечень ОС Windows и их основных характеристик........................................43

5.1.2. Выбор платформы Windows .................................................................................44

5.1.3. Термины....................................................................................................................44

5.2. Архитектура Windows ....................................................................................................48

5.2.1. Режимы выполнения программного кода..............................................................48

5.2.2. Многозадачность......................................................................................................48

5.2.3. Управление памятью ...............................................................................................49

5.2.4. Выполнение приложений........................................................................................50

5.2.5. Интерфейс прикладного программирования Win32 (API Win32) ......................51

5.2.6. Реестр Windows........................................................................................................51

5.3. Вопросы к главе 5 ...........................................................................................................52

ОПЕРАЦИОННЫЕ СИСТЕМЫ ТИПА UNIX....................................52

6.1. Общая характеристика операционных систем UNIX, особенности архитектуры

семейства ОС UNIX...............................................................................................................52

6.2. Основные понятия системы UNIX................................................................................52

6.2.1. Виртуальная машина ...............................................................................................53

6.2.2. Пользователь ............................................................................................................53

6.2.3. Интерфейс пользователя .........................................................................................53

6.2.4. Привилегированный пользователь.........................................................................54

6.2.5. Команды и командный интерпретатор ..................................................................54

6.2.6. Процессы...................................................................................................................54

6.3. Функционирование системы UNIX...............................................................................55

6.3.1 Выполнение процессов.............................................................................................55

6.3.2. Подсистема ввода/вывода .......................................................................................55

6.3.3. Перенаправление ввода/вывода..............................................................................56

6.4. Файловая система ...........................................................................................................56

6.4.1. Структура файловой системы.................................................................................56

6.4.2. Защита файлов..........................................................................................................57

6.5. Межпроцессные коммуникации в UNIX......................................................................57

6.5.1. Сигналы.....................................................................................................................57

6.5.2. Семафоры..................................................................................................................58

6.5.3. Программные каналы ..............................................................................................58

6.5.4. Очереди сообщений.................................................................................................59

6.5.5. Разделяемая память..................................................................................................60

6.5.6. Вызовы удаленных процедур (RPC) ......................................................................60

6.6 Основы работы в ОС UNIX ............................................................................................61

6.6.1 Доступ к системе UNIX............................................................................................61

6.6.2. Файлы и каталоги.....................................................................................................66

6.6.3. Команды обращения к файловой системе.............................................................71

6.6.4. Создание файлов и каталогов .................................................................................73

6.6.5. Работа с файлами .....................................................................................................76

6.6.6. Управление правами доступа к файлам.................................................................77

6.6.7. Работа с текстовыми файлами ................................................................................82

6.6.8. Система ввода и вывода ..........................................................................................86

6.6.9. Программы и процессы ...........................................................................................91

6.6.10. Интерпретатор командного языка........................................................................96

6.9.11. Выполнение, остановка и повторный запуск процессов .................................103

6.7 Операционная система Linux........................................................................................107

6.8. Вопросы к главе 6 .........................................................................................................108

РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА ..................................................108

Основная: ..............................................................................................................................108

Дополнительная: ..................................................................................................................108

Операционные системы и среды

Введение

Системное программное обеспечение– это программы и комплексы программ,

общие для всех, кто совместно использует технические средства компьютера, и

применяемые для автоматизации разработки новых программ и выполнения программ

существующих.

Системное программное обеспечение состоит из 5-ти групп:

1) операционные системы;

2) системы управления файлами;

3) интерфейсные оболочки для взаимодействия пользователя с ОС и

программные среды;

4) системы программирования;

5) утилиты.

ОС– комплекс управляющих и обрабатывающих программ, интерфейс между

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

эффективного использования ресурсов вычислительной системы.

Функции ОС:

- прием от пользователя заданий или команд, выданных в виде командной

строки или с помощью манипулятора (мыши);

- прием и исполнение программных запросов на запуск, приостановку или

остановку других программ;

- загрузка в оперативную память подлежащих исполнению программ;

- инициирование программы (передачи управления на ее выполнение);

- идентификация всех программ и данных;

- обеспечение работы систем управления файлами (СУФ) и/или систем

управления базами данных (СУБД);

- обеспечение режима мультипрограммирования, выполнение двух и более

задач на одном процессоре;

- организация и управление операциями ввода/вывода;

- обеспечение минимального времени ответа в системах реального времени;

- распределение памяти, организация виртуальной памяти;

- планирование и диспетчеризация заданий в соответствии с заданной

дисциплиной обслуживания;

- обмен сообщениями и данными между выполняющимися программами;

- защита одной программы от влияния другой, сохранность данных;

- предоставление услуг на случай частичного сбоя системы;

- обеспечение работы систем программирования.

Система управления файламипредназначена для организации более удобного

доступа к данным, организованным в файлы. Все современные ОС имеют

соответствующие системы управления файлами, однако, ряд ОС позволяют работать с

несколькими файловыми системами (даже одновременно). Эта возможность

обеспечивается монтированием файловых систем.

Интерфейсная оболочкапредназначена для удобства взаимодействия пользователя

с ОС. Назначение – расширить возможности по управлению ОС или изменить

встроенные в систему возможности. Примеры: Explorer, X Window, эмуляторы).

Операционная среда– интерфейс, необходимый программам для обращения к ОС

с целью получить определенный сервис.

Система программированиявключает следующие элементы:

- транслятор с соответствующего языка;

- библиотеки подпрограмм;

- редакторы;

- компоновщики;

- отладчики.

Самостоятельных (вне ОС) систем программирования не бывает.

Утилиты– это специальные системные программы, с помощью которых можно как

обслуживать саму ОС, так всю вычислительную систему:

- подготовка для работы носителей данных;

- перекодировка;

- оптимизация размещения данных на диске;

- разбиение накопителя на магнитных дисках на разделы;

- форматирование;

- архивирование данных.

Основные понятия

Понятие операционной среды

- управление вычислительными процессами в вычислительной системе; - распределение ресурсов вычислительной системы между различными вычислительными процессами;

Понятие вычислительного процесса и ресурса

данными на последовательном процессоре. Процессор имеет два аспекта: - носитель данных; - исполнитель операций, связанных с обработкой данных.

Динамика состояния процесса

- в активном состоянии, может участвовать в конкуренции за использование ресурсов вычислительной системы; - в пассивном состоянии, известен системе, в конкуренции не участвует.

Реализация понятия последовательного процесса в ОС

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

Процессы и треды

процессов, которые в настоящее время получили названия потокиили треды(нити). Понятие процессв плоскости ОС подчеркивает их обособленность: - у каждого процесса свое виртуальное адресное пространство;

Прерывания

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

Основные виды ресурсов

время. Имеется множество методов разделения этого ресурса. Вторым важным ресурсом является оперативная память. В оперативной памяти может располагаться одновременно несколько процессов (точнее фрагментов,

Классификация операционных систем

Вариантов классификации ОС может быт очень много, они зависят от признака, по

которому одна ОС отличается от другой:

- по назначению;

- по режиму обработки;

- по способу взаимодействия с системой;

- по способу построения.

Основным предназначением ОС является:

- организация эффективных и надежных вычислений;

- создание различных интерфейсов для взаимодействия с этими

Вычислениями и самой вычислительной системой.

- ОС общего назначения; - ОС специально назначения. ОС специального назначения подразделяются на следующие:

Вопросы к главе 1

2) Для чего каждая задача получает дескриптор? Какие поля содержатся в дескрипторе? Что такое контекст задачи? 3) Объясните понятие ресурса. Почему понятие ресурса является одним из

Управление задачами и памятью в операционных системах

поскольку без нее, как и без центрального процессора, невозможно выполнение ни одной программы. Память является разделяемым ресурсом. Способы разделения памяти и … времени центрального процессора сильно влияют на скорость выполнения отдельных

Планирование и диспетчеризация процессов и задач

Стратегия планирования

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

Дисциплины диспетчеризации

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

Вытесняющие и не вытесняющие алгоритмы диспетчеризации

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

Качество диспетчеризации и гарантии обслуживания

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

Диспетчеризация задач с использованием динамических приоритетов

задач не могут быть выполнены в течение значительного времени из-за высокой нагрузки в вычислительной системе. Введение механизма динамических приоритетов… реализовать быстрое выполнение коротких задач и гарантировать выполнение любых

Память и отображение, виртуальное адресное

Пространство

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

При сегментно-страничном способе организации виртуальной памяти

программа разбивается на логически законченные части – сегменты, виртуальный адрес

содержит указание на номер соответствующего сегмента. Вторая составляющая

виртуального адреса – смещение относительно начала сегмента, может состоять из двух

полей:

- виртуальной страницы;

- индекса.

Виртуальный адрес состоит из трех компонентов:

- сегмента;

- страницы;

- индекса.

Вопросы к главе 2

2) Что такое гарантия обслуживания? 3) Опишите механизмы диспетчеризации. В чем их различия? 4) Что такое виртуальный адрес и виртуальное адресное пространство?

В ОС

Сложность проектирование ввода/вывода возникает из-за огромного числа

устройств различной природы и назначения. Разработчик ввода/вывода должен решить

две задачи:

- обеспечить эффективное управление устройствами ввода/вывода;

- создать удобный и эффективный интерфейс устройств ввода/вывода,

позволяющий прикладным программистам просто считывать или сохранять

данные.

Система ввода/вывода должна быть универсальной.

Главный принцип ввода/вывода – любые___________операции по управлению

вводом/выводом объявляются привилегированными и могут выполняться только

самой ОС. Для обеспечения этого принципа в большинстве процессоров вводятся два

режима:

- режим пользователя, выполнение команд ввода/вывода запрещено;

- режим супервизора, выполнение команд ввода/вывода разрешено.

Использование команд ввода/вывода в пользовательском режиме вызывает

исключение (прерывание) и управление передается ОС.

Для мультипрограммных ОС одним из основных видов ресурсов являются

устройства ввода/вывода и обслуживающие их программы. ОС должны управлять

разделяемыми и неразделяемыми устройствами и позволять параллельно

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

Непосредственное обращение к внешним устройствам из пользовательских

программ не разрешено по трем причинам:

- возможные конфликты при доступе к устройствам ввода/вывода;

- повышение эффективности использование этих ресурсов;

- ошибки в программах ввода/вывода могут привести к разрушению системы.

Компонента ОС, выполняющая ввод/вывод называется супервизором

ввода/вывода. Основные задачи супервизора следующие:

- получение, проверка на корректность и выполнение запросов на ввод/вывод от

прикладных задач и от модулей самой системы;

- планирование ввода/вывода: выполнение или постановка в очередь;

- инициирование ввода/вывода – передача управления драйверам;

- при получении сигналов прерывания передача управления соответствующей

программе обработки прерывания;

- передача сообщений об ошибках, если они появляются;

- передача сигнала о завершении операции ввода/вывода.

Если устройство ввода/вывода является инициативным, управление со стороны

супервизора ввода/вывода заключается в активизации соответствующего

вычислительного процесса. Инициативное устройство– устройство, по сигналу

прерывания от которого запускается соответствующая ему программа.

Имеются два основных режима ввода/вывода:

- режим обмена u1089 с опросом готовности;

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

Центральный процессор посылает устройству управления команду для

ввода/вывода. Устройство ввода/вывода исполняет команду, преобразуя ее в сигнал,

понятный устройству ввода/вывода. Устройства ввода/вывода намного медленнее

центрального процессора, поэтому сигнал готовности приходится очень долго ждать,

постоянно опрашивая устройство интерфейса. В режиме опроса готовности драйвер,

управляющий процессом обмена данными с внешним устройством, выполняет в цикле

команду «поверить готовность устройства». Центральный процессор в таком режиме

используется нерационально.

Режим обмена с прерываниями является режимом асинхронного управления.

Драйверы, работающие в режиме прерываний, представляют собой сложный комплекс

программ и могут иметь несколько секций:

- секцию запуска, которая инициирует операцию ввода/вывода, включает

устройство или инициирует очередь ввода/вывода;

- одну или несколько секций продолжения, которые являются обработчиками

прерываний;

- секцию завершения, которая выключает устройство и завершает операцию.

Для организации использования многими параллельно выполняющимися задачами

устройств ввода/вывода, которые не могут быть разделяемыми, введено понятие

виртуального устройства (спулинга). Главная задача спулинга– создать видимость

параллельного разделения устройства ввода/вывода с последовательным доступом,

которое должно быть монопольным и быть закрепленным. Например, каждому

вычислительному процессу можно предоставить не реальный, а виртуальный принтер, и

поток выводимых символов сначала направить в файл на диске. По окончанию

виртуальной печати в соответствии с дисциплиной обслуживания и приоритетами

приложений содержимое спул файла выводится на принтер. Системный процесс,

управляющий спул файлом, называется спулером.

Синхронный ввод/выводхарактеризуется тем, что задача, выдавшая запрос на

операцию ввода/вывода, переводится _________супервизором в состояние ожидания завершения

указанной операции. Когда супервизор получает от секции завершения сообщение о

завершении, он переводит задачу в состоянье готовности к выполнению, и она

продолжает свою работу. Синхронный ввод/вывод является стандартным для

большинства ОС.

Простейший вариант асинхронного вывода– буферизованный вывод данных на

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

на устройство ввода/вывода, а в специальный системный буфер. В этом случае логически

операция вывода считается законченной, и задача может не ожидать реального процесса

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

ввода/вывода. Асинхронный вывод возможен при наличии двух условий:

- в запросе на вывод было указано на необходимость буферизации данных;

- устройство вывода допускает асинхронные операции.

Для организации асинхронного ввода необходимо:

- выделить область памяти для временного хранения считываемых с устройства

данных;

- связать выделенный буфер с задачей, заказавшей операцию ввода;

- запрос на операцию ввода разбить на две части (два запроса).

В первом запросе указывается операция на ввод данных, как при асинхронном

вводе, и имя буфера для вводимых данных. После этого задача продолжает выполнение

или переводится в режим ожидания выполнения, но не переводится в ожидания

завершения операции ввода/вывода, как при асинхронном вводе. После выполнения

некоторого объема программного кода задача выдает второй запрос на завершение

операции ввода и, если операция ввода данных завершена к этому времени, то выбирает

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

приостанавливается до завершения ввода, как при асинхронном вводе.

Накопители на магнитных дисках обладают крайне низкой скоростью по сравнению

с быстродействием центральной части процессора. С учетом того, что операции

чтения/записи на диск производятся несколькими большими буферами, средняя скорость

работы процессора с оперативной памятью на 2 – 3 порядка выше, чем скорость передачи

данных из внешней памяти на магнитных дисках в оперативную память. Чтобы сгладить

такое несоответствие в производительности основных подсистем, используется

буферированиеи/или кэшированиеданных.

Простейший вариант – использование двойного буферирования: пока в один буфер

заносятся данные с магнитного диска, из второго буфера ранее считанные данные могут

быть прочитаны запросившей их программой. Аналогичный процесс происходит при

записи. Буферирование используется во всех ОС.

Кэшированиеполезно в том случае, когда программа неоднократно читает с диска

одни и те же данные. После того как они один раз будут помещены в кэш, обращение к

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

КЭШем понимается некий пул буферов, управление которым производится с помощью

системного процесса.

Функции файловой системы ОС и иерархия данных

структуры. Файловая система– это набор спецификаций и соответствующее им программное обеспечение, которое отвечает за создание, удаление, организацию,… запись, модификацию и перемещение файлов информации, а также за управление

Файловые системы FAT, FAT32, NTFS и s5

Файловая система FAT

Этот термин относится к линейной табличной структуре со сведениями о файлах – именами файлов, их атрибутами и другими данными, определяющими… файлов или их фрагментов в среде FAT. Элемент FAT определяет фактическую область

Файловая система FAT32

содержит многочисленные усовершенствования и дополнения по сравнению с FAT16. Принципиальное отличие FAT32 заключается в более эффективном использовании дискового пространства: FAT32 использует кластеры меньшего размера, что приводит к

Файловая система NTFS

усовершенствований и изменений, существенно отличающих ее от других файловых систем. С точки зрения пользователей файлы по-прежнему хранятся в каталогах,… работа на дисках большого объема в NTFS происходит намного эффективнее:

Файловая система s5 операционной системы UNIX System V

компонентов: - суперблок; - массив индексных дескрипторов;

Вопросы к главе 3

сложных областей проектирования операционных систем? 2) Почему операции ввода/вывода объявляются привилегированными? 3) Перечислите основные задачи, возлагаемые на супервизор ввода/вывода.

Архитектура операционных систем.

В настоящее время уже никто не разрабатывает ОС, кроме специализирующихся на

этом фирм, а все являются только пользователями.

Основные принципы построения операционных систем

Принцип модульности

Модуль – функционально законченный элемент системы, отвечающий требованиям

Межмодульного интерфейса. Из определения следует, что один модуль можно заменить

На другой. Способы обособления отдельных частей ОС могут различаться, но чаще всего

Разделение происходит по функциональному принципу.

Особенно важное значение при построении ОС имеют модули, позволяющие более

эффективно использовать ресурсы вычислительной системы:

- привилегированные;

- повторно входимые;

- реентерабельные.

В некоторых ОС реентерабельность достигается автоматически:

- при неизменяемости кодовых частей программы при исполнении;

- при автоматическом распределении регистров;

- при автоматическом отделении кодовых частей программ от данных и

Помещении данных в системную область памяти.

Принцип модульности отражает технологические и эксплуатационные свойства ОС.

Наибольший эффект достигается при распространении принципа модульности на ОС,

Прикладные программы и аппаратуру.

Принцип функциональной избирательности

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

Более эффективной организации вычислительного процесса, называется ядром ОС. При

формировании состава ядра следует учитывать два противоречивых требования:

- в состав ядра должны войти наиболее часто используемые системные модули;

- количество модулей должно быть таковым, чтобы объем памяти, занимаемый

Ядром, не был слишком большим.

В состав ядра входят, как правило, следующие модули:

- модули по управлению системой прерываний;

- средства по переводу программ из состояния выполнения в состояние

Ожидания, готовности и обратно;

- средства по распределению основных ресурсов: оперативной памяти и

Процессорного времени.

Транзитные программные модули загружаются в память только при

Необходимости и в случае отсутствия свободного дискового пространства могут быть

Замещены другими транзитными модулями.

Принцип генерируемости ОС

Принцип генерируемости - возможность настраивать u1089 системную супервизорную

Часть (ядро и основные компоненты), исходя из конкретной конфигурации

Вычислительного комплекса и класса решаемых задач. Процедура генерации

Производится с помощью программы-генератора и языка описания входных данных для

этой программы. В результате генерации получается полная версия ОС – совокупность

Системных наборов модулей и данных.

Принцип модульности положительно проявляется при генерации ОС. Он упрощает

Настройку ОС на требуемую конфигурацию вычислительной системы. Принцип

Генерируемости реализован в ОС, типа UNIX.

Принцип функциональной избыточности

Этот принцип дает возможность проведения одной и той же работы различными

способами. В состав ОС может входить:

- несколько типов планировщиков (модулей супервизора, управляющих тем или

Иным видом ресурсов);

- различные средства организации связи между вычислительными процессами.

Это дает возможность пользователям:

- быстро и наиболее адекватно адаптировать ОС к определенной конфигурации

Вычислительной системы;

- обеспечить максимально эффективную загрузку технических средств при

Решении конкретного класса задач;

- получить максимальную производительность при решении заданного класса

Задач.

Принцип виртуализации

Построение виртуальных ресурсов, их распределение и использование в настоящее

Время имеет место почти в каждой ОС. Этот принцип позволяет представить структуру

Системы в виде определенного набора планировщиков процессов и распределителей

Ресурсов и использовать единую централизованную схему распределения ресурсов.

Понятие виртуальная машина является итогом концепции виртуальности. Любая

ОС, являясь средством распределения ресурсов и организуя по определенным правилам

Управление процессами, скрывает от пользователя и его приложений реальные

Аппаратные и иные ресурсы, заменяя их абстракциями. Пользователь видит виртуальную

Машину как некое устройство, способное воспринимать его программы и команды.

Пользователя не интересует реальная конфигурация вычислительной системы и способы

Управления ее компонентами. Он оперирует с теми ресурсами, которые ему

Предоставлены в рамках виртуальной машины.

Виртуальная машина, предоставляемая пользователю, воспроизводит архитектуру

Реальной машины, но архитектурные элементы в таком представлении имеют новые или

Улучшенные характеристики, часто упрощающие работу с системой. Характеристики

Могут быть произвольными, но обычно пользователи хотят видеть идеальную по своим

архитектурным характеристикам машину:

- единообразная по логике работы память практически неограниченного объема.

Среднее время доступа соизмеримо со временем доступа к оперативной

Памяти. Организация работы с информацией в такой памяти производится в

Терминах обработки данных на уровне выбранного пользователем языка

Программирования;

- произвольное количество (виртуальных) процессоров, способных работать

Параллельно и взаимодействовать во время работы. Способы управления

Процессорами (синхронизация и информационные взаимодействия)

Реализованы и доступны пользователям на уровне используемого языка в

Терминах управления процессами;

- произвольное количество (виртуальных) внешних устройств, способных

Работать с памятью виртуальной машины параллельно или последовательно,

Асинхронно или синхронно по отношению к работе того или иного

Виртуального процессора, которые инициируют работу этих устройств.

Информация, хранимая или передаваемая на виртуальные устройства, не

Ограничена допустимыми размерами. Доступ к такой информации

Осуществляется на основе либо последовательного, либо прямого способа

Доступа в терминах соответствующей системы управления файлами.

Предусмотрено расширение информационных структур данных, хранимых на

Виртуальных устройствах.

Степень приближения к «идеальной» виртуальной машине может быть большей или

Меньшей в каждом конкретном случае. Чем больше виртуальная машина, реализуемая

Средствам ОС на базе конкретной аппаратуры, приближена к идеальной по

Характеристикам машине, чем больше ее архитектурно-логические характеристики

Отличны от реально существующих, тем больше степень виртуальности у полученной

Пользователем машины.

Принцип независимости программ от внешних устройств

Этот принцип в настоящее время реализуется в подавляющем большинстве

Современных ОС общего назначения. Принцип независимости заключается в том, что

Связь программ с конкретными устройствами производится не на уровне трансляции

Программ, а в период планирования ее исполнения. При работе с новым устройством для

Хранения данных перекомпиляция не требуется.

Принцип независимости позволяет одинаково осуществлять операции управления

Внешними устройствами независимо от конкретных физических характеристик. Смена

Носителя и данных, размещенных на нем, не принесет каких-либо изменений в

Программу, если в системе реализован принцип независимости.

Принцип совместимости

Одним из аспектов совместимости является способность ОС выполнять программы,

написанные:

- для других ОС;

- для более ранних версий данной операционной системы;

- для другой аппаратной платформы.

Совместимость подразделяется на два аспекта:

- двоичная совместимость;

- совместимость на уровне исходных текстов приложений.

При двоичной совместимости можно взять исполняемую программу и выполнить

ее в среде другой ОС. Для этого необходимы:

- совместимость на уровне команд процессора;

- совместимость на уровне системных вызовов;

- совместимость на уровне библиотечных вызовов, если они являются

Динамически связываемыми.

Совместимость на уровне исходных текстов требует:

- наличия соответствующего транслятора в составе системного программного

Обеспечения;

- совместимости на уровне библиотек и системных вызовов.

Необходимо перекомпилировать имеющиеся исходные тексты в новый

Выполняемый модуль.

Одним из средств обеспечения совместимости программных и пользовательских

Интерфейсов является соответствие стандартам POSIX. Использование стандарта POSIX

Позволяет создавать программы в стиле UNIX, которые могут легко переноситься из

Одной ОС в другую.

Принцип открытой и наращиваемой ОС

Открытая ОС доступна для анализа как системным специалистам, обслуживающим

Вычислительную систему, так и пользователям. Наращиваемая ОС позволяет не только

Использовать возможности генерации, но и вводить в состав ОС новые модули,

Совершенствовать старые и т.д.

Этот принцип требует, чтобы можно было легко внести дополнения и изменения в

ОС, если потребуется, и не нарушить целостность ОС.

К открытым системам в первую очередь относятся UNIX-подобные системы.

Принцип модульности (переносимости)

Операционная система должна относительно легко переноситься:

- с процессора одного типа на процессор другого типа;

- с аппаратной платформы (архитектуры вычислительной системы) одного типа

На аппаратную платформу другого типа.

Принцип переносимости близок принципу совместимости, но это не одно и то же.

Написание переносимой ОС, как и любой переносимой программы, должно

следовать определенным правилам:

- большая часть операционной системы должна быть написана на языке,

Который имеется во всех вычислительных системах, на которые планируется в

Дальнейшем ее переносить. Это должен быть стандартизованный язык

Высокого уровня, например, язык С. программы, написанные на ассемблере, в

Общем случае не являются переносимыми;

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

Взаимодействует с аппаратурой. Если аппаратный код не может быть

Исключен, он должен быть изолирован в нескольких модулях.

Принцип обеспечения безопасности вычислений

Обеспечение безопасности при выполнении вычислений является желательным

Свойством для любой многопользовательской системы. Правила безопасности

определяют следующие свойства:

- защита ресурсов одного пользователя от других;

- установка квот по ресурсам для предотвращения захвата одним пользователем

Всех системных ресурсов.

Обеспечение безопасности информации от несанкционированного доступа является

Обязательной функцией сетевых операционных систем. Во многих современных ОС

Гарантируется степень безопасности данных, соответствующих уровню С2 в системе

Стандартов США.

В соответствии с требованиями Оранжевой книги безопасной считается система,

которая «посредством специальных механизмов защиты контролирует доступ к

Информации таким образом, что только имеющие соответствующие полномочия лица

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

создание или удаление информации». Низший класс – D, высший – A.

Основные свойства для систем класса C:

- наличие подсистемы учета событий, связанных с безопасностью;

- избирательный контроль доступа.

Класс C делится на два подуровня:

- C1 обеспечивает защиту данных от ошибок пользователей, но не

Злоумышленников;

- C2 более строгий уровень контроля.

На уровне C2 должны присутствовать:

- средства секретного входа, обеспечивающие идентификацию пользователей

Путем ввода уникального имени и пароля перед тем, как им будет разрешен

Доступ к системе;

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

Определить, кто имеет доступ к ресурсу и что он может с ним делать. Владелец

Делает это путем предоставления прав доступа пользователю или группе

Пользователей;

- средства учета и наблюдения, обеспечивающие возможность обнаружить и

Зафиксировать важные события, связанные с безопасностью, или любые

Попытки создать, получить доступ или удалить системные ресурсы;

- защита памяти, память повторно инициируется перед повторным

Использованием.

На уровне C2 система не защищена от ошибок пользователя, но поведение его

Может быть проконтролировано по протоколам, оставленным средствами наблюдения и

Аудита.

Микроядерные операционные системы

Микроядро – минимальная стержневая часть операционной системы, служащая

Основой модульных и переносимых расширений.

Основная идея, заложенная в технологию u1084 микроядра (ОС или графический

Интерфейс), заключается в том, чтобы конструировать необходимую среду верхнего

Уровня, из которой можно легко получить доступ ко всем функциональным

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

Создания системы.

Искусство разработки микроядра заключается в выборе базовых примитивов,

Которые должны в нем находиться для обеспечения необходимого и достаточного

Сервиса. В микроядре содержится и исполняется минимальное количество кода,

необходимое для реализации основных системных вызовов:

- передача сообщений;

- организация взаимодействия между внешними по отношению к микроядру

Процессами;

- поддержка управления прерываниями и др.

Микроядро – маленький модуль системного программного обеспечения,

Работающий в наиболее приоритетном состоянии компьютера и поддерживающий

Остальную часть операционной системы, рассматриваемую как набор серверных

Приложений.

Исполняемые микроядром функции ограничены в целях сокращения его размера и

Максимизации количества кода, работающего как прикладная программа.

Микроядро включает только те функции, которые требуются для определения

Набора абстрактных сред обработки для прикладных программ и для организации

Совместной работы приложений. Микроядро обеспечивает пять различных типов

сервисов:

- управление виртуальной памятью;

- задания и потоки;

- межпроцессные коммуникации;

- управление вводом/выводом и прерываниями;

- сервисы набора Хоста и процессора.

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

операционной системы:

- система управления файлами;

- поддержка внешних устройств;

- традиционные программные интерфейсы.

Микроядра проще, чем ядра монолитных или модульных операционных систем.

Функция операционной системы разбивается на модульные части, которые могут быть

Сконфигурированы целым рядом способов.

Поскольку микроядра малы и имеют сравнительно мало требуемого к исполнению

Кода уровня ядра, они обеспечивают u1091 удобный способ поддержки характеристик

Реального времени

Монолитные операционные системы

Монолитные операционные системы являются прямой противоположностью

Микроядерным. В монолитной ОС очень трудно удалить один из уровней

Многоуровневой модульной структуры. Добавление новых функций и изменение

Существующих для монолитных ОС требует очень хорошего знания всей архитектуры

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

технология «сервер – клиент».

Модель сервер – клиент предполагает наличие программного компонента,

являющегося потребителем какого-либо сервиса – клиента, и программного компонента,

поставщика этого сервиса – сервера. Взаимодействие между сервером и клиентом

Стандартизуется, сервер может обслуживать клиентов, реализованных различными

способами. Главное требование – использование единообразного интерфейса.

Инициатором обмена является клиент, который посылает запрос серверу. Один и тот же

Программный компонент может быть и клиентом, и сервером.

При поддержке монолитных ОС возникает ряд проблем, связанных с тем, что все

функции микроядра работают в едином адресном пространстве:

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

- сложность подключения к ядру новых драйверов.

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

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

Останов которого не отражается на работоспособности остальных процессов.

Требования, предъявляемые к ОС реального времени

Система реального времени должна давать отклик на непредсказуемые внешние

Воздействия в течение предсказуемого интервала времени. Свойства операционных

систем реального времени:

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

До наступления крайнего срока;

- одновременность обработки. Даже если возникает более одного события

Одновременно, временные ограничения для всех u1089 событий должны быть

Выдержаны. В системе реального времени должен присутствовать

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

Примеры систем реального времени: - системы управления атомными электростанциями; - системы управления технологическими процессами;

Мультипрограммность и многозадачность (многопоточность). ОС

Должна активно использовать прерывания для диспетчеризации.

Максимальное время выполнения того или иного действия должно

Быть известно заранее и соответствовать требованиям приложения;

Приоритеты задач (потоков). Проблема, какой задаче ресурс

Требуется больше всего. В идеальной ситуации ОСРВ отдает ресурс

Потоку или драйверу с ближайшим крайнем сроком завершения.

Чтобы реализовать этот принцип ОС должна знать, сколько времени

Требуется каждому процессу для его завершения. Таких ОС нет, так

Как их очень сложно реализовать, поэтому вводится понятие уровня

Приоритета для задачи и временные ограничения сводятся к

Приоритетам;

Наследование приоритетов. ОСРВ должна допускать наследование

Приоритета, то есть повышение уровня приоритета потока до уровня

Приоритета потока, который его вызывает. Наследование означает, что

Блокирующий ресурс поток наследует приоритет потока, который он

Блокирует;

Синхронизация процессов u1080 и задач. Так как задачи разделяют данные

(ресурсы) и должны сообщаться друг с другом, то должны

Существовать механизмы блокирования и коммуникации. Эти

Системные механизмы должны быть всегда доступны процессам,

Требующим реального времени;

Предсказуемость. Времена выполнения системных вызовов и

Временные характеристики поведения системы в различных

Обстоятельствах должны быть известны разработчику.

Разработчик ОСРВ должен привести следующие характеристики:

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

Задачи;

- максимальное время выполнения каждого системного вызова;

- максимальное время маскирования прерываний драйверами и ОС.

Принципы построения интерфейсов операционных

Систем

Операционная система – интерфейс между аппаратурой компьютера и

пользователем с его задачей. Интерфейс операционных систем – специальные

Интерфейсы системного и прикладного программирования, предназначенные для

выполнения следующих задач:

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

функций:

O запуск, приостанов и снятие задачи с выполнения;

O задание или изменение приоритета задачи;

O взаимодействие задач между собой (сигналы, семафоры, очереди,

Конвейеры, почтовые ящики);

O удаленный вызов подпрограмм;

- управление памятью:

O запрос на выделение блока памяти;

O освобождение памяти;

O изменение параметров блока памяти;

O отображение файлов на память;

- управление вводом/выводом:

O запрос на управление виртуальными устройствами;

O файловые операции.

Пользовательский интерфейс ОС реализуется с помощью специальных

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

Транслируют их в обычные вызовы в соответствии с основным интерфейсом системы.

Обычно эти модули называются интерпретатором команд.

Имеются два основных подхода к управлению задачами:

Порождаемая задача наследует все ресурсы задачи-родителя;

При порождении нового процесса ресурсы для него запрашиваются у

Операционной системы.

Обращение к операционной системе в соответствии с имеющимися API может

осуществляться:

- посредством вызова подпрограммы с передачей ей необходимых параметров;

- через механизм программных прерываний.

Интерфейс прикладного программирования предназначен для использования

Прикладными программами системных ресурсов ОС и реализуемых ею функций.

Термин API (application program interface, интерфейс прикладного

программирования):

- API как интерфейс высокого уровня, принадлежащий к библиотекам RTL (run

Time library, библиотека во время выполнения);

- API прикладных и системных программ, входящих в поставку операционной

Системы;

- прочие API.

API представляет собой набор функций, предоставляемых системой

Программирования разработчику прикладной программы и ориентированных на

Организацию взаимодействия результирующей программы с целевой вычислительной

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

Выполняется результирующая программа).

API используется не только прикладными, но и многими системными программами

Как в составе ОС, так и в составе системы программирования.

Программный интерфейс API включает в себя не только сами функции, но и

соглашения об их использовании, которые зависят от:

- операционной системы;

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

- системы программирования.

Варианты реализации API:

- на уровне ОС;

- на уровне системы программирования;

- на уровне внешней библиотеки процедур и функций.

В каждом из этих вариантов разработчику предоставляется возможность

Подключить функции API к исходному коду программы и организовать их вызов.

Возможности API можно оценить со следующих позиций:

- эффективность выполнения функций API (скорость выполнения, объем

Вычислительных ресурсов);

- широта предоставляемых возможностей;

- зависимость прикладной программы от архитектуры целевой вычислительной

Системы.

В идеале набор функций API должен:

- выполняться с наивысшей эффективностью;

- предоставлять пользователю все возможности современных ОС;

- иметь минимальную зависимость от архитектуры вычислительной системы.

Вопросы к главе 4

Перечислите и поясните основные принципы построения операционных систем.

Сравните микроядерные и монолитные операционные системы.

Перечислите основные требования, предъявляемые к операционным системам

Реального времени.

Какие задачи возлагаются на интерфейс прикладного программирования API.

Операционные системы Windows

Недостатки MS-DOS:

- трудности с многозадачностью;

- трудности с защитой памяти;

- трудности с большим адресным пространством.

Отсюда:

Мало пригоден для работы в сети с крупными приложениями.

В главе 5 рассматриваются три главные операционные системы Windows и основы

Их архитектур.

Операционные системы Windows

Перечень ОС Windows и их основных характеристик

Windows – это операционная система с графическим интерфейсом, использующая

Изображения, значки, меню и прочие визуальные элементы.

Windows 3.1 - 16-разрядная оболочка, работающая поверх ОС MS-DOS. В версии

Добавлены средства сетевой поддержки. Версии 3.х работают под управлением ОС

MS-DOS.

Windows 9x - 32-разрядная ОС не требует ОС MS-DOS. Поддерживает все

Существующие 16-разрядные приложения и служит платформой для разработки 32-

Разрядных приложений. Обладает встроенными сетевыми средствами.

Поддержка аппаратуры Plug-and-Play позволяет изменять конфигурацию

Персонального компьютера без вмешательства пользователя.

Файловая система FAT32 – расширение FAT. FAT32 более эффективно

Использует дисковое пространство. В FAT16 таблица размещения файлов разделена на

Блоки по 16 Кб. Если блок используется не полностью, оставшийся объем пропадает. В

FAT32 объем блоков – 4 Кб, поэтому потери меньше. FAT16 поддерживает диски до 2

Гб, а FAT32 – до 2 Тб. Большинство приложений модифицировать не надо, кроме тех,

Которые обращаются к диску на физическом уровне.

Windows NT - 32-разрядные ОС, применяются для одновременного выполнения

Множества приложений в многопроцессорных системах.

Программы выполняются в отдельных областях памяти, поэтому неисправное

Приложение не влияет на работу других. Архитектура Windows NT защищает ОС от

Приложений, пытающихся монополизировать ресурсы процессора или воспользоваться

Адресным пространством ОС.

ОС Windows NT Workstation – мощная ОС для компьютеров, объединенных в

Одноранговую сеть или рабочая станция в составе домена Windows NT Server.

ОС Windows NT Server – основа для серверных приложений, позволяет

Реализовать стандартные функции серверов файлов и печати.

В настоящее время на смену Windows NT пришла версия Windows 2000. Имеется

несколько разновидностей Windows 2000, но основные из них Professional и Server:

- Windows 2000 Professional содержит все средства, необходимые для

Операционной системы, предоставляя возможность использовать компьютер и

Программное обеспечение одному или нескольким пользователям;

- Windows 2000 Server – операционная системы, специально предназначенная

Для управления сетью. Существует несколько разновидностей Windows 2000

Server, каждая из которых создана для выполнения специфических задач по

Работу с сетями Internet, базами данных и т.д. Данная версия не предназначена

Для индивидуального использования.

Многопроцессные возможности и файловая система NTFS делают Windows NT и

Windows 2000 наиболее защищенными и стабильными операционными системами

Семейства Windows.

Симметричная многопроцессорная обработка обеспечивает автоматическое

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

Равномерное распределение потребностей системы и приложений между процессорами.

Слой абстрагирования от аппаратуры позволяет, не теряя производительности на

Любой платформе, оставаться независимой от аппаратуры.

Файловая система NTFS предпочтительна для ОС Windows NT, могут

Использоваться и другие файловые системы, но хотя бы один раздел должен быть

Отформатирован как NTFS. Файловая система NTFS поддерживается только для Windows

NT и Windows 2000.

Преимущество – возможность работы с разделами большого размера.

При использовании NTFS следует учитывать, что

- в NTFS встроены средства восстановления после сбоя, не нужно запускать

Утилиту восстановления;

- на разделе NTFS нельзя восстановить удаленный файл;

- при использовании NTFS значительно уменьшаются потери из-за

Фрагментации диска;

- NTFS поддерживает модель защиты Windows NT, поэтому все файлы и

Каталоги можно защитить правами доступа и подвергать аудиту;

- не рекомендуется использовать NTFS на томах размером менее 400 Мб.

Выбор платформы Windows

Выбор Windows-платформы зависит от класса задач, Windows 9x и Windows NT,

Дополняя друг друга, дает возможность решить большинство задач пользователей.

Офисные задачи – создание документов, запросы к базам данных или анализ

Электронных таблиц (Microsoft Office). Лучший выбор - Windows 9x.

Удаленные пользователи – мобильные пользователи, работающие вне офиса, у

Клиента, требовательны к совместимости приложений и не требовательны к ресурсам.

Лучший выбор - Windows 9x.

Высокая производительность требуется пользователям научной и технической

Сферы при интенсивных вычислениях и анализе данных. Windows NT поддерживает

Симметричную многопроцессорную обработку, а для офисных приложений не нужен

Отдельный компьютер. Лучший выбор - Windows NT или Windows 2000.

Защита уровня С-2 обеспечивает работу многих пользователей на одном

Компьютере под управлением Windows NT или Windows 2000 с гарантированной

Защитой всех файлов в системе. Файловая система NTFS предотвращает

Неавторизованный доступ к системе и данным. Лучший выбор - Windows NT или

Windows 2000.

Высокая надежность – уровень доступности и производительность системы выше

Среднего, например, управление производством. Windows NT выполняет 16-разрядные

Приложения в раздельных адресных пространствах, что обеспечивает продолжение

Выполнения при отказе одного из приложений. Windows NT обеспечивает полную

Защиту 32-разрядных приложений и может автоматически восстанавливаться после сбоя.

Лучший выбор - Windows NT или Windows 2000.

Термины

В системах Windows приняты следующие термины:

- вход в систему (log-in) – процедура регистрации в системе, получение доступа

К ней;

- панель управления – средство для управления видом и функционированием

Windows, а также различных элементов оборудования ПК;

- мой компьютер – средство, позволяющее видеть все содержимое вашего

Компьютера;

- рабочий стол – то, что появляется на экране сразу после запуска Windows;

- путь – полный _________путь к файлу;

- подменю – меню, вложенное в главное меню. Подменю также могут быть

Вложены в другие подменю. В меню Пуск признаком подменю служит

Небольшая стрелка рядом с его именем;

- <F1> - клавиша для вызова системы справки;

- система справки – средство отображения справочной информации о Windows;

- раздел – раздел с информацией в системе справки;

- Windows Update – пункт в меню Пуск, позволяющий подключиться к Internet и

Осуществить оттуда обновление средств Windows;

- мастер - средство Windows, облегчающее трудную задачу;

- значок – небольшое изображение, являющееся визуальным представлением

Программы, файла, папки или команды;

- минимизировать – способ свернуть приложение в кнопку на панели задач, не

Закрывая его;

- панель задач – один из наиболее полезных элементов рабочего стола

Windows. Именно здесь находится кнопка Пуск и появляются кнопки,

Представляющие все открытые программы;

- твердая копия – реальное, из бумаги и чернил, доказательство выполнения на

Компьютере некоторой работы;

- операционная система – это Windows. Операционная система – это то, что

Управляет компьютером и работой его программ;

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

Панели инструментов;

- мои рисунки – папка, которую Windows предоставляет для хранения

Фотографий и других графических файлов;

- родительский каталог – каталог, расположенный одним уровнем выше

Каталога, содержимое которого оператор в данное время просматривает;

- вставить – удобная команда, используемая для перемещения выделенной

Информации, а иногда файлов или папок;

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

Его удалили;

- удаленный доступ – предоставляет соединение между вашим компьютером и

Internet, сетью или другим компьютером;

- домашняя страница – страница, которую Web-броузер автоматически

Отображает при подключении к Internet. В процессе работы можно вернуться

На домашнюю страницу, щелкнув по кнопке Домой;

- модем – небольшое устройство, позволяющее вашему компьютеру

Подключаться к Internet;

- средство поиска – Web-страница особого типа, позволяющая (Uniform

Resource Locator – унифицированный локатор ресурсов) – адрес Web-

Страницы

- адресная книга – список имен и адресов электронной почты,

Поддерживаемый Outlook Express, облегчает создание новых приложений email;

- вложения – файлы, пересылаемые вместе с сообщениями электронной почты;

- группа новостей – большая группа людей, которым вы можете одновременно

Послать сообщение;

- архив – набор файлов, сжатых и собранных в один файл для облегчения

передачи. Наиболее популярный формат архива – ZIP-файл;

- загрузка – процесс передачи файла с другого компьютера на ваш компьютер.

Обратным процессом является выгрузка файла;

- FTP (File Transfer Protocol – протокол передачи файлов) – примитивный

Способ передачи файлов между UNIX-компьютерами, а также метод передачи

Файлов через Internet;

- GIF (Graphics Interchange Format – формат обмена графическими

данными) – специальный формат файлов для хранения графических

Изображений, пригодный для использования на всех компьютерах;

- изображение – графика на Web-странице;

- JPEG (Joint Photographic Expert Group – объединенная экспертная группа

по фотографии) – универсальный графический стандарт, созданный на замену

Устаревшему CIF (до 16 миллионов цветов в одном графическом

Изображении);

- концентратор – центральное оборудование в сети. Все компьютеры

Подключаются к концентратору, используя специальные сетевые кабели;

- подключение диска – процесс добавления сетевого жесткого диска в вашу

Систему, чтобы ОС Windows сочла его диском вашего ПК. Жесткий диск

Подключается к вашему ПК, ему присваивается значок и буква в окне Мой

Компьютер;

- сеть – оборудование и программное обеспечение, которые позволяют многим

Компьютерам совместно использовать свои ресурсы;

- сетевая карта – карта расширения, которая вставляется в ваш компьютер и

Позволяет ему получить доступ к сети. Ваш компьютер соединяется с другими

Компьютерами в сети посредством сетевых кабелей;

- администратор – лицо, организующее совместное использование компьютера.

Только администратор может добавлять или удалять пользователей, менять

Пароли, изменять какие-либо системные установки, имеющие отношение к

Пользователям, и осуществлять общую поддержку системы;

- пароль – секретное слово, без которого доступ в систему закрыт;

- пользователь – лицо с правом использования компьютера. Права и

Привилегии каждого пользователя определяет администратор;

- Active Desktop (рабочий стол похож на Web-страницу) – периодически

Взаимодействует с определенными Web-узлами с целью обновления

Информации;

- Active Desktop Gallery – витрина Internet-информации, можно найти

Конкретную информацию для рабочего стола;

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

Изображения и т.д.;

- ярлык – средство для быстрого доступа к программе, папке или файлу;

- локальный принтер – принтер, подключенный непосредственно к вашему

Компьютеру;

- модем – элемент оборудования, позволяющий вашему компьютеру

Обмениваться информацией с использованием телефонной линии (пересылка

Факс-сообщений, работа в Internet);

- сетевой принтер – принтер, к которому могут иметь доступ другие

Компьютеры в сети;

- резервное копирование – процедура копирования файлов с жесткого диска на

Магнитную ленту (или какой-либо диск) для безопасности. Если с

Оригинальными файлами что-то случается, всегда можно воспользоваться

Резервной копией;

- дисковое пространство – место на жестком диске (либо свободное, либо в

Целом);

- восстановление – процедура, обратная резервному копированию.

Восстановление файлов с помощью резервной копии – процесс копирования

Их назад на жесткий диск. Это делается в том случае, если файлы были

Удалены, либо восстановление всего диска, если с ним что-нибудь произошло;

- инсталляционный диск – гибкий диск или компакт-диск, с которого новая

Программа инсталлируется на жесткий диск вашего компьютера. Иногда с

Помощью инсталляционного диска можно и деинсталлировать компоненты

Windows;

- мастер компонентов Windows средство, позволяющее инсталлировать и

Деинсталлировать компоненты Windows;

- фрагментация – процесс _________разделения файла на небольшие части для более

Эффективного размещения на диске;

- схема – набор установок Windows, включающий цвета, шрифты, размеры и

Другую информацию, описывающую элементы экрана. Можно использовать

Уже готовые схемы, предлагаемые Windows, или создавать свои собственные;

- программа сохранения экрана – программа, запускающаяся после периода

отсутствия активности и гасящая экран. На сегодня эти средства – дань

Традиции;

- шрифт – стиль, определяющий вид текста на экране или в печатном документе;

- пункт – мера высоты шрифта. В одном дюйме 72 пункта. Большинство

Пользователей используют шрифты размером 10 или 12 пунктов;

- засечка – декоративный элемент шрифта. Шрифт без засечек (sans serif)

Используется преимущественно для заголовков. Шрифт с засечками (serif)

Читается легче, поэтому обычно используется для текста;

- драйвер устройства – программа, позволяющая устройству (например,

Модему или принтеру) взаимодействовать с Windows;

- оборудование

- – устройства, которые можно подключить к компьютеру, чтобы расширить его

Возможности;

- Plug and Play (включи и работай) – технология, позволяющая компьютеру

Выявлять вновь подключенные устройства и автоматически их

Конфигурировать;

- USB (Universal Serial Bus – универсальная последовательная шина) –

Помимо поддержки стандарта Plug and Play, порты USB позволяют подключить

До 127 устройств без необходимости завершать работу Windows и выключать

Компьютер;

- системное табло – область на правом конце панели задач, где отображаются

Индикатор времени, а также небольшие значки, позволяющие управлять

Различными программами или аспектами функционирования Windows.

Архитектура Windows

Режимы выполнения программного кода

Два режима: пользователя и ядра, четыре уровня привилегий (кольца) для защиты

От менее привилегированного кода (модель защиты Intel).

Уровень привилегий 0, режим ядра, максимальный.

Уровень привилегий 3, режим пользователя, минимальный.

ОС Windows используют только 0 и 3 уровни.

Режим ядра (кольцо 0) – наиболее привилегированный режим:

- имеет прямой доступ к аппаратному обеспечению;

- имеет доступ ко всей памяти компьютера;

- не может быть вытеснен в страничный файл на жестком диске;

- выполняется с большим приоритетом, чем процессы режима пользователя.

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

Изменение другой программой.

Процесс режима пользователя характеризуется следующим:

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

Приложений или неавторизированного доступа;

- ограничен выделенным им адресным пространством. Этим обеспечивается

Целостность ОС;

- может быть вытеснен из физической памяти в виртуальную память на жестком

Диске. Пространство на диске используется как дополнительное ОЗУ;

- выполняется с меньшим приоритетом, чем ядро.

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

Процессы режима ядра. ОС не ожидает окончания выполнения приложения.

Неисправный программный компонент не вызывает разрушения системы.

Многозадачность

Многозадачность – способность операционной системы обеспечить совместное

Использование процессора несколькими программами, т.е. выполнять более одной

Программы (задачи) одновременно. Рабочие программы можно назвать задачами.

Однозадачность – один процесс должен завершиться прежде, чем может начаться

Другой.

Процесс – выполняемая программа, ему принадлежит адресное пространство и

Выделенные ресурсы, а также один или более потоков, выполняющихся в его контексте.

В Windows 2000 и UNIX загруженная в память программа называется процессом. В

Windows 95 также применяется термин процесс. Термины процесс и задача можно

Считать синонимами.

Поток – основная единица, которой ОС выделяет процессное время, и

минимальный квант кода, который может быть запланирован для выполнения. Поток –

Это часть процесса, выполняющаяся в данный момент времени. Поток работает в

Адресном пространстве процесса и использует ресурсы, выделенные процессу.

Любой процесс содержит хотя бы один поток, 16-разрядные приложения имеют

Один поток, 32-разрядные могут включать несколько потоков.

Ресурсами владеют процессы, а не потоки.

Корпоративная многозадачность – контроль над процессором никогда не

Отбирается у задачи, приложение должно самостоятельно отказаться от контроля над

Процессором, чтобы другое приложение заработало. Программа должна учитывать

Необходимость возврата управления процессором операционной системе, иначе ОС

Будет заблокирована.

Вытесняющая многозадачность – ОС получает контроль над процессором без

Согласия выполняющегося приложения.

С помощью планирования ОС определяет, какой поток использует процессор в

Данный момент времени. Каждому потоку присваивается приоритет. Планирование

основано на заранее заданной единице времени – кванте (продолжительность кванта

зависит от конфигурации системы). Уровни приоритетов – от 0 (наименьший) до 31

(наибольший). Поток с наибольшим приоритетом получает процессор в свое

Распоряжение.

Приоритет каждого потока определяется по:

- классу приоритета процесса, которому принадлежит поток;

- уровню приоритета потока внутри класса приоритета его процесса.

Уровни приоритетов Windows разделены на два класса:

- реального времени (приоритеты от 16 до 31) используются для выполнения

Основных функций ОС и обычно не применяются для приложений;

приложения; приоритет 0 – для бесстраничного системного потока. Базовые уровни приоритетов: - низкий – запускает приложение с уровнем приоритета 4;

Управление памятью

В Windows 9x и Windows 2000 каждый процесс имеет свое адресное пространство

До 4 Гб памяти (не физическое ОЗУ). Физическая память ограничена системными

ресурсами: ОЗУ и дисковым пространством. Windows выделяет приложению 2 Гб

Памяти, а остальные 2 Гб резервируются u1076 для нужд ядра.

Если объем ОЗУ меньше, чем 4 Гб, то Windows использует механизм виртуальной

памяти: когда объем ОЗУ будет исчерпан, часть содержимого физической памяти

Переносится на жесткий диск. Этот механизм называется подкачкой.

Для каждого процесса ядро поддерживает таблицу страниц – структуру,

Позволяющую преобразовать виртуальные адреса в физические.

Виртуальная память Windows использует механизм отображения области

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

Программа как бы обладала своим собственным физическим ОЗУ.

Каждая программа имеет собственное виртуальное адресное пространство, которое

Диспетчер виртуальной памяти преобразует в адреса физического ОЗУ или в файлы на

Жестком диске.

Физическое и виртуальное (логическое) адресное пространство каждого процесса

разделено на страницы – кванты памяти, размер которых зависит от компьютера. Ядро

Может перемещать страницы памяти в страничный файл на диске и обратно. Когда

Страница перемещается в физическую память, ядро обновляет таблицу страниц

Соответствующего процесса. Когда ядру требуется место в физической памяти, оно

Вытесняет самые старые страницы физической памяти в страничный файл. Все это

Происходит незаметно для приложения.

Выполнение приложений

Windows 9x и Windows NT выполняют приложения по-разному, особенно 16-

Разрядные.

Механизм сообщений Windows используется для управления приложениями.

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

Мыши. Сообщения помещаются в очередь сообщений. Активное приложение постоянно

Просматривает свою очередь и извлекает из нее поступившие сообщения.

Обмен сообщениями в Windows основан на том, что у каждого приложения своя

Очередь сообщений, т.е. каждый поток имеет собственную очередь сообщений и не

Влияет на поведение других работающих приложений. Если одно из приложений

Разрушится, то остальные будут выполняться на основе вытесняющей многозадачности

(для Win32-приложений). 16-разрядные приложения используют общую очередь

Сообщений и в случае сбоя, пока проблема не будет решена, остальные приложения не

Получат доступа к очереди.

Windows NT выполняет приложение в рамках виртуальной машины. Фактически

ВМ – среда для выполнения приложения, которая эмулирует все ресурсы компьютера.

Для приложения ВМ – полноценный компьютер.

Каждая виртуальная машина включает в себя следующие компоненты:

- карту памяти, определяющую объем виртуальной памяти, доступный этой

Виртуальной машине;

- контекст выполнения, определяемый состоянием регистров виртуальной

Машины;

- набор ресурсов, доступных приложению.

Основные достоинства виртуальной машины Windows:

- виртуальная память, выделенная отдельной ВМ, изолирована от виртуальной

Памяти, выделенной другой ВМ;

- средства защиты памяти и портов ввода-вывода позволяют защитить каждое из

Входящих в систему устройств.

Драйвер устройства – программный компонент, получающий команды из ОС и

Преобразующий их в команды конкретным устройствам. Часто драйверы

Разрабатываются производителем устройства. Драйверы позволяют разрабатывать

аппаратно независимые приложения. Компоненты, для которых используются драйверы:

- дисплеи;

- звуковые карты;

- устройства связи;

- принтеры;

- сетевые адаптеры.

Драйвер может принадлежать к одной из групп: защищенного режима и

Реального режима.

Драйверы реального режима созданы для работы в реальном режиме ОС MS-DOS.

Они не так безопасны и устойчивы, как драйверы защищенного режима. Драйвер

Защищенного режима (виртуальный драйвер) обеспечивает быстрый разделяемый доступ

К устройству. Код защищенного режима выполняется более эффективно.

Windows 9x поддерживает оба типа драйверов, а Windows NT только драйверы

Защищенного режима.

Интерфейс прикладного программирования Win32 (API Win32)

API Win32 обеспечивает доступ ко всем функциям ОС, позволяет разрабатывать

Приложения, работающие на всех платформах.

Основной код API Win32 содержится в трех библиотеках динамической загрузки:

USER32 (User32.dll и User.exe) создают и контролируют окна на экране.

GDI32 (Gdi32.dll и Gdi.exe) контролируют интерфейс графических устройств:

- вывод на экран;

- вывод на принтер;

- включение/отключение пикселов.

KERNEL32 (Kernel32.dll) выполняет базовые функции ОС:

- управление памятью;

- файловый ввод/вывод;

- загрузку программы;

- выполнение программы.

Операция шлюзования выполняется, когда ОС преобразует вызов 16-разрядной

Функции в вызов 32-разрядной. Процессы в Windows 9x и Windows NT не могут

Одновременно содержать 16-разрядный и 32-разрядный код.

Реестр Windows

Реестр – унифицированная база данных, содержащая информацию об аппаратной и

Программной конфигурации локального компьютера.

Редактор реестра REGEDIT.EXE позволяет просматривать и редактировать реестр

Windows 9x и Windows NT. При ручном редактировании следует быть осторожным:

Редактор не распознает синтаксические и семантические ошибки и не предупреждает о

Создании некорректного элемента. Большинство параметров системы можно

Модифицировать через диспетчер устройств и др. панели управления.

Реестр – древовидная иерархическая база данных, хранится в двух файлах:

USER.DAT – настройки для пользователя и SYSTEM.DAT – настройки для компьютера.

Узел иерархического дерева называется ключом. Любой ключ может содержать

Вложенные ключи. В ключе хранится произвольное число значений данного типа, каждое

значение называется элементом реестра. Компоненты ключей следующие:

- имя (уникально среди ключей того же уровня иерархии);

- класс (имя класса объекта);

- дескриптор защиты (для Windows NT и Windows 2000);

- время последней записи;

- элементы.

Список ключей:

HKEY_CLASSES_ROOT – сведения о встраивании и связывании объектов и

Ассоциации файлов с приложениями;

HKEY_LOCAL_MACHINE – спецификации рабочей станции, драйверов и другие

Системные настройки;

HKEY_CURRENT_CONFIG – информация о текущей конфигурации компьютера;

HKEY_USERS – информация обо всех пользователях данной рабочей станции;

HKEY_CURRENT_USER – настройки системы и программ, относящиеся к

Текущему пользователю;

HKEY_DYN_FATA – динамическая информация о состоянии различных

Устройств.

Вопросы к главе 5

Перечислите основные возможности Windows 3.1, Windows 9x, Windows NT и

Windows 2000.

Как _________выбрать ОС, оптимальную для конкретной ситуации.

3. Как Windows 9x и Windows NT выполняют программный код?

4. Как Windows 9x и Windows NT реализуют вытесняющую многозадачность?

5. Как Windows 9x и Windows NT 9x и Windows NT управляют памятью?

Сходства и различия выполнения приложений в Windows 9x и Windows NT.

7. Как драйверы устройств обеспечивают независимость от аппаратуры?

Назначение и структуру реестра Windows.

Операционные системы типа UNIX

Общая характеристика операционных систем UNIX,

Особенности архитектуры семейства ОС UNIX

ОС UNIX – исключительно удачная реализация простой мультипрограммной и

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

Разработки программного обеспечения. ОС UNIX обладает простым, но очень мощным

Командным языком и независимой от устройств файловой системой. При создании ОС

UNIX использовался язык высокого уровня С, поэтому системные и прикладные

Программы получились легко переносимыми (мобильными). Компилятор с языка С для

Всех оттранслированных программ дает реентерабельный и разделяемый код, что

Позволяет эффективно использовать имеющиеся в системе ресурсы.

При разработке ОС UNIX преследовались следующие цели:

- сохранить простоту и обойтись минимальным количеством функций;

- общность – одни и те же методы и механизмы должны были использоваться во

Многих случаях;

- создать операционную среду, в которой большие задачи можно решать,

Комбинируя небольшие программы, а не создавая программы заново.

Общность в ОС UNIX проявляется во многих аспектах:

- обращение к файлам, устройствам ввода/вывода и буферам межпроцессных

Сообщений выполняется с помощью одних и тех же средств;

- одни и те же механизмы именования, присвоения альтернативных имен и

Защиты от несанкционированного доступа применяются к файлам с данными,

К каталогам и устройствам;

- одни и те же механизмы обслуживают программные и аппаратные прерывания.

Основные понятия системы UNIX

Основным достоинством ОС UNIX является то, что система базируется на

Небольшом числе понятий.

Виртуальная машина

ОС UNIX – многопользовательская _________система. Каждому пользователю после

Регистрации предоставляется виртуальный процессор, в котором есть все необходимые

- процессор (карусельная диспетчеризация RR, динамические приоритеты); - память; - устройства;

Образ процесса во время его выполнения размещается в основной памяти. В

Современных реализациях, поддерживающих страничный механизм виртуальной памяти,

Прежде всего выгружаются неиспользуемые страницы.

Образ памяти делится на три логических сегмента:

Сегмент реентерабельных процедур;

Сегмент данных;

Сегмент стека.

Пользователь

ОС UNIX предназначена для мультитерминальной работы. Чтобы начать работу

пользователь должен «войти» в систему:

- ввести учетное имя;

- ввести пароль.

Пользователь называется зарегистрированным, если на него заведена

соответствующая учетная запись в файле /etc/passwd. Регистрацию новых пользователей

Выполняет администратор системы. Пользователь не может изменить свою

Регистрационное имя, но может изменить пароль. Пароли хранятся в закодированном

виде в файле /etc/shadow.

Файловая система ОС UNIX имеет древовидную структуру. Каждому

Зарегистрированному пользователю устанавливается некоторый каталог файловой

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

регистрации пользователя в системе, он попадает в свой «домашний» каталог.

Доступ пользователя к «чужим» файлам и каталогам ограничен установленными

Правами доступа к этим файлам и каталогам.

Интерфейс пользователя

После регистрации пользователя в ОС UNIX для его запускается один из

командных интерпретаторов, который прописан в файле /etc/passwd. В системах UNIX

Поддерживаются несколько командных интерпретаторов с похожими, но

Различающимися возможностями. Общее название для любого командного

интерпретатора – shell (оболочка).

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

После выполнения которой снова выводится приглашение.

Командные языки достаточно просты и в то же время мощны.

Привилегированный пользователь

При регистрации пользователя в системе ему присваивается уникальный

Идентификатор (UID). Каждый пользователь относится к той или иной группе

Пользователей с идентификатором группы (GID). Сведения о группах пользователей и

значения идентификаторов хранятся в файле /etc/group.

Значения идентификаторов UID и GID наследуются процессами, порожденными

Текущим пользователем.

Администратор системы также является зарегистрированным пользователем, но он

Должен обладать большими возможностями, чем обычный пользователь. В ОС UNIX

Суперпользователю root выделяется нулевое значение идентификатора. Пользователь с

Таким идентификатором имеет неограниченные права доступа к любому файлу и на

Выполнение любой программы. Суперпользователь имеет возможность полного контроля

Над системой.

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

как:

- максимальный размер файла;

- максимальное число сегментов разделяемой памяти;

- максимальное допустимое пространство на диске и т.д.

Команды и командный интерпретатор

Оболочкой shell в ОС UNIX называется механизм взаимодействия между

Пользователем и системой.

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

Разделенных пробелами. Оболочка разбивает командную строку на компоненты.

Любой командный язык семейства shell состоит из трех частей:

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

Строками и строить сложные команды на основе простых;

Встроенных команд, выполняемых непосредственно интерпретатором

Командного языка;

Команд, представляемых отдельными выполняемыми файлами.

Процессы

В ОС UNIX процесс – программа, выполняемая в собственном адресном

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

Процесс, в котором выполняется программа командного интерпретатора. Если

Командному интерпретатору встречается команда, соответствующая выполняемому

Файлу, то он создает новый процесс и запускает в нем эту команду.

Функционирование системы UNIX

Выполнение процессов

Процесс может выполняться в одном из двух состояний:

- пользовательском. Процесс выполняет пользовательскую программу и имеет

Доступ к пользовательскому сегменту данных;

- системном. Процесс выполняет программы ядра и имеет доступ к системному

Сегменту данных.

Когда пользовательскому процессу требуется выполнить системную функцию, он

Создает системный вызов. Фактически происходит вызов ядра системы как

Подпрограммы. С момента появления системного вызова процесс считается системным.

Пользовательский и системный процессы являются двумя фазами одного и того же

Процесса, но они никогда не пересекаются между собой. Каждая фаза пользуется своим

собственным стеком. Стек задачи содержит:

- аргументы;

- локальные переменные;

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

Диспетчерский процесс не имеет пользовательской фазы.

В ОС UNIX используется разделение времени, каждому процессу выделяется квант

времени:

- процесс завершается сам до истечения отведенного ему кванта времени;

- процесс откладывается по истечении кванта времени.

Пользовательским процессам устанавливаются приоритеты в зависимости от

количества получаемого ими процессорного времени:

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

Более низкие приоритеты;

- процессам, которые получили небольшое количество процессорного времени,

Приоритет повышают.

Такой метод диспетчеризации обеспечивает хорошее время реакции для всех

Пользователей системы.

Все системные процессы имеют более высокие приоритеты по сравнению с

Пользовательскими и поэтому всегда обслуживаются в первую очередь.

6.3.2. Подсистема ввода/вывода

В ОС UNIX команды ввода/вывода, применяемые к файлам и физическим

Устройствам, одни и те же. Физические устройства представлены специальными файлами

В единой структуре файловой системы. Пользователь не может написать зависящую от

Устройства программу. Стандартные файлы ввода и вывода, приписываемые

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

Система ввода/вывода ОС UNIX, в отличие от большинства систем, ориентирована

на работу с потоками, а не с записями. Поток – последовательность байтов,

Заканчивающаяся разделителем. Понятие потока позволяет проще добиться

Независимости от устройств и унификации файлов с физическими устройствами и

Конвейерами.

6.3.3. Перенаправление ввода/вывода

Механизм перенаправления ввода/вывода является одним из наиболее элегантных,

Мощных и одновременно простых механизмов в ОС UNIX. Для того чтобы обеспечить

Более гибкое использование программ ввода и вывода, желательно обеспечить им ввод из

Файла или из вывода других программ и направить их вывод в файл или на ввод других

Программ.

Реализация этого механизма основана на следующих свойствах ОС UNIX:

- любой ввод/вывод трактуется как ввод из некоторого файла и вывод в

Некоторый файл. Клавиатура и монитор тоже интерпретируются как файлы;

- доступ к любому файлу производится через его дескриптор:

O файл с дескриптором 1 называется файлом стандартного ввода (stdin);

O файл с дескриптором 2 называется файлом стандартного вывода (stdout);

O файл с дескриптором 3 называется файлом стандартного вывода

Диагностических сообщений (stderr);

- программа, запущенная в некотором процессе, наследует от породившего

Процесса все дескрипторы открытых файлов.

Файл стандартного ввода – клавиатура, файлы стандартного вывода и вывода

диагностических сообщений – экран терминала.

При запуске любой команды можно сообщить интерпретатору:

- какой файл или вывод какой программы должен служить файлом стандартного

ввода для запускаемой программы:

- какой файл или ввод какой программы должен служить u1092 файлом стандартного

Вывода;

- какой файл или ввод какой программы должен служить файлом вывода

Диагностических сообщений.

Все, что требуется для нормального функционирования механизма перенаправления

ввода/вывода, - придерживаться соглашения об использовании дескрипторов stdin, stdout

И stderr.

Файловая система

Файл в ОС UNIX – множество символов с произвольным доступом. В файле

Содержатся произвольные данные, помещенные туда пользователем и ничего более.

Структура файловой системы

Информация на дисках размещается поблочно, по 512 байт в каждом блоке, блок

равен сектору. Диск разбивается на следующие области:

- неиспользуемый блок;

- управляющий блок или суперблок, в котором содержится размер диска и

Границы других областей;

- область для хранения содержимого файлов. Каждый i-узел содержит: - идентификационный номер владельца;

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

Пространство на диске, оставшееся свободным от файлов, образует связанный список

Свободных блоков.

Защита файлов

Защита файлов осуществляется при помощи идентификатора пользователя и десяти

битов защиты – прав доступа. Права доступа подразделяются на три типа:

- чтение (read);

- запись (write);

- исполнение (execute).

Эти права доступа могут быть предоставлены трем классам пользователей:

- владельцу файла;

- группе, в которую входит владелец;

- всем прочим пользователям.

Атрибуты доступа определяют, что разрешено делать с данным файлом данной

Категории пользователей.

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

Новые ссылки на узлы. Удаление файла заключается u1074 в удалении ссылки. Право на

создание и удаление файла – это право на запись в каталог.

Право на выполнение каталога интерпретируется как право на поиск в нем,

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

Данный каталог, даже тогда, когда каталог не разрешено читать и список всех его файлов

Недоступен.

Межпроцессные коммуникации в UNIX

ОС UNIX в основе своей наиболее полно отвечает требованиям технологии «север –

клиент». Для построения программных систем, работающих по принципу модели «сервер

– клиент» в ОС UNIX существуют специальные механизмы, описанные ниже.

Сигналы

ОС UNIX, предоставляющая каждому пользователю виртуальный компьютер,

поддерживает систему прерываний, отвечающую стандартным требованиям:

- обработка исключительных ситуаций;

- средства обработки внешних и внутренних прерываний;

- средства управления системой прерываний.

Всем этим требованиям в ОС UNIX отвечает техника сигналов, которая не только

Воспринимает и обрабатывает сигналы, но может их порождать и посылать на другие

машины (процессы). Сигналы могут быть:

- синхронными, когда сам процесс инициирует сигнал;

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

Возникновение сигнала. Источником асинхронных прерываний может быть

Ядро, когда оно контролирует состояние аппаратуры.

Сигнал – простейшая форма межпроцессого взаимодействия, которое используется

Для передачи от одного процесса другому или ядра системы какому-либо процессу

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

Семафоры

Семафор – переменная определенного типа, которая доступна параллельным

процессам для проведения над ней только двух операций:

- закрытия (P-операция);

- открытия (V-операция).

Семафор играет роль вспомогательного критического ресурса, так как операции P и

V неделимы при своем выполнении и взаимно исключают друг друга.

Семафорный механизм работает по схеме, в которой сначала исследуется состояние

Критического ресурса, а затем уже осуществляется допуск к критическому ресурсу или

Отказ от него на некоторое время. При отказе доступа к критическому ресурсу

используется режим «пассивного ожидания», поэтому в состав механизма включаются

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

Основным достоинством семафорных операций является отсутствие состояния

«активного ожидания», что может существенно повысить эффективность работы

Мультипрограммной вычислительной системы.

Операция P(S) проверяет текущее значение семафора S, и если оно меньше нуля, то

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

на некоторое время с выполнения и переводится в состояние «пассивного ожидания». В

Этом состоянии ожидающий процесс не проверяет семафор непрерывно, поэтому на

Процессоре может выполняться другой полезный процесс.

Операция V(S) связана с увеличением значения семафора на единицу и переводом

Одного или нескольких процессов в состояние готовности к выполнению.

Операции P(S) и V(S) выполняются операционной системой в ответ на запрос,

Выданный некоторым процессом и содержащий имя семафора в качестве параметра.

Механизм семафоров, реализованный в ОС UNIX, является обобщением

Классического механизма семафоров общего вида. Семафор в ОС UNIX состоит из

следующих элементов:

- значение семафора;

- идентификатор процесса, который хронологически последним работал с

Семафором;

- число процессов, ожидающих увеличения значения семафора;

- число процессов, ожидающих нулевого значения семафора.

Для работы с семафорами имеются следующие три системные вызова:

- создание и получение доступа к набору семафоров;

- манипулирование значениями семафоров (синхронизация процессов на основе

Использования семафоров);

- выполнение разнообразных управляющих операций над набором семафоров.

Программные каналы

Программный канал (конвейер, транспортер) является средством, с помощью

Которого можно производить обмен данными между процессами. Принцип работы

конвейера основан на механизме ввода/вывода, который используется для работы с

Файлами в ОС UNIX. Задача, передающая информацию, действует так, как будто она

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

Ее из этого файла. Операции записи и чтения осуществляются не записями, а потоком

Байтов. Программный канал представляет собой поток данных между двумя (или более)

Процессами. Конвейеры не являются файлами на диске, а представляют собой буферную

Область.

Программные каналы (pipes) в ОС UNIX являются очень важным средством

Взаимодействия и синхронизации процессов. Теоретически программный канал

Позволяет взаимодействовать любому числу процессов, обеспечивая дисциплину FIFO

(first-in-first-out). Процесс, читающий из программного канала, прочитает самые давние

Данные, записанные в программный канал. Традиционно для хранения данных

Использовались файлы, в современных версиях ОС UNIX применяются и другие

Средства, например, очереди сообщений.

В ОС UNIX различают два вида программных каналов:

- именованный программный канал может служить для общения и

Синхронизации произвольных процессов, знающих имя данного программного

Канала и имеющих соответствующие права доступа;

- неименованным программным каналом могут пользоваться только

Создавший его процесс и его потомки.

Очереди сообщений

Очереди сообщений (Queue) являются более сложным методом связи

Взаимодействующих процессов по сравнению с программными каналами. С помощью

Очередей также можно из одной или нескольких задач независимым образом посылать

Сообщения некоторой задаче-приемнику. При этом только процесс-приемник может

Читать и удалять сообщения из очереди, а процессы-клиенты имеют право лишь

Помещать в очередь свои сообщения. Очередь работает только в одном направлении,

Если необходима двухсторонняя связь, следует создать две очереди.

- очереди сообщений предоставляют возможность использовать u1085 несколько дисциплин обработки сообщений: o FIFO – сообщение, записанное первым, будет прочитано первым;

Канал обеспечивает только дисциплину FIFO;

- при чтении сообщения из очереди оно не удаляется, а может быть прочитано

Несколько раз;

- в очередях реально присутствуют не сами сообщения, а только их адреса в

Памяти и размеры. Эта информация размещается системой в сегменте памяти,

Доступном для всех задач, общающихся с помощью данной очереди.

Каждый процесс, использующий очередь, должен предварительно получить

Разрешение на использование общего сегмента памяти с помощью системных запросов,

потому что очередь – системный механизм и для работы с ней требуются системные

Ресурсы и обращение к самой ОС.

Для обеспечения возможности обмена сообщениями между процессами механизм

очередей сообщений поддерживается следующими системными вызовами:

- образование новой очереди сообщений или получения дескриптора

Существующей очереди;

- посылка сообщения, т.е. постановка его в указанную очередь сообщений;

- прием сообщения, т.е. выборка сообщения из очереди сообщений;

- выполнение ряда управляющих действий.

Ядро хранит сообщения в виде связанного списка (очереди), а дескриптор очереди

Сообщений является индексом в массиве заголовков очередей сообщений.

Разделяемая память

Для работы с разделяемой памятью используются четыре системных вызов:

- создание нового сегмента разделяемой памяти или нахождение

Существующего сегмента с тем же ключом;

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

Обращающегося процесса;

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

Указанным виртуальным адресом начала;

- управление разнообразными параметрами, связанными с существующим

Сегментом.

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

Этот процесс может обращаться к соответствующим элементам памяти с использованием

Обычных машинных команд чтения и записи, не прибегая к использованию

Дополнительных системных вызовов.

Вызовы удаленных процедур (RPC)

Во многих случаях взаимодействие процессов имеет характер «клиент – сервер».

Один из процессов «клиент» запрашивает у другого процесса сервера» некоторую

Услугу и не продолжает свое выполнение, пока эта услуга не будет выполнена. По

Смыслу такой режим взаимодействия эквивалентен вызову процедуры, поэтому он так и

Назван. По идеологии ОС UNIX идеально соответствует требованиям сетевой

Операционной системы, поэтому на ее основе можно создавать распределенные системы

И организовывать распределенное вычисление. Одной из основных требований к RPC

Является автоматическое преобразование форматов данных при взаимодействии

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

Технология вызовов удаленных процедур (RPC – remote procedure call) должна

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

В случае удаленного вызова передача параметров процедуре превращается в

Передачу запроса по сети.

Вызов удаленных процедур включает следующие шаги:

- процесс «клиент» производит локальный вызов процедуры, которую называют

«заглушкой». Задачи «заглушки» следующие:

O принять аргументы;

O преобразовать аргументы в стандартную форму;

O сформировать сетевой запрос. Упаковка аргументов и создание сетевого

Запроса называется сборкой;

- сетевой запрос пересылается на удаленную систему, где соответствующий

Модуль ожидает такой запрос и при его получении извлекает параметры

Вызова процедуры, а затем передает их серверу удаленной процедуры. После

Выполнения осуществляется обратная передача.

Основы работы в ОС UNIX

В этом разделе описывается, как использовать систему UNIX. Уделено внимание

Тому, как использовать клавиатуру, получить регистрационное имя, войти в систему и

Выйти из нее, ввести _________команды.

Доступ к системе UNIX

Чтобы установить контакт с системой UNIX необходимо иметь:

- терминал;

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

Пользователя;

- пароль, который проверяет вас на идентичность;

- инструкции для диалога и доступа к системе UNIX, если ваш терминал

Напрямую не связан с компьютером.

Регистрационное имя - это имя, с помощью которого система UNIX проверяет,

Являетесь ли вы полномочным пользователем системы, во время запроса доступа к ней.

Регистрационное имя вы должны вводить каждый раз, когда вы хотите войти в систему.

Чтобы получить регистрационное имя, обратитесь к администратору системы

UNIX. Существует несколько правил выбора регистрационного имени. Обычно длина

Имени составляет от 3 до 8 символов. Оно может состоять из больших или маленьких

Букв, цифр, символа подчеркивания, но не может начинаться с цифры.

Однако ваше регистрационное имя, возможно, будет определяться конкретным

применением. Примеры допустимых имен:

Dko30101

Mary2

Jmrs

Если терминал напрямую связан с компьютером, то при включении в верхнем

левом углу немедленно появится подсказка:

login:

Если в качестве терминала используется персональный компьютер, настроенный на

работу в сети с помощью семейства протоколов TCP/IP, необходимо установить связь с

Компьютером, на котором установлена ОС UNIX. Это можно осуществлять несколькими

Способами, например, с помощью сетевого приложения telnet, которое имеется в

операционных системах Windows 95/98//2000/NT или с помощью средств доступа к

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

Или получить информацию у преподавателя.

Например, в качестве терминала используется персональный компьютер с ОС

Windows NT, сконфигурированной для работы в сети. Необходимо зарегистрироваться

В UNIX-системе.

Требуемые исходные данные и действия:

- для установления связи с ОС UNIX необходимо знать сетевое имя удаленного

Компьютера или его IP-адрес (например, 192.168.2.19);

- найти в персональном компьютере приложение telnet и запустить его на

Исполнение;

- ввести IP-адрес удаленной UNIX-системы (например, 192.168.2.19); - установить по желанию характеристики терминала. Когда появится подсказка login:, введите регистрационное имя и нажмите клавишу

Если вы сделаете ошибку при вводе вашего регистрационного имени, то вы можете

исправить ее с помощью символа @ или клавиши <BACKSPACE>.

Примечание. Помните, что вы должны вводить текст маленькими буквами. Если

При вводе будете использовать большие буквы, то система UNIX будет ожидать при

Приеме только большие буквы, и посылать сообщения будет только большими буквами.

Теперь система выдает вам подсказку для ввода пароля. Введите пароль и нажмите

клавишу <RETURN>. Если при вводе вы сделаете ошибку, то можете исправить ее с

помощью клавиши <BACKSPACE> или символа @. Система UNIX не отображает ваш

Пароль на экране с целью безопасности.

Если регистрационное имя и пароль допустимы в системе UNIX, то система может

Вывести текущую информацию и затем подсказку команды.

Когда вы войдете в систему, то экран терминала будет выглядеть следующим

образом:

login: dko30123

password:

. . . . . . .

. . . . . . .

$

Если вы сделаете ошибку при входе в систему, UNIX выведет сообщение:

Login incorrect

Затем предоставит вам второй шанс войти в систему, выдав подсказку login:

Экран будет выглядеть следующим образом:

login: dko30123<CR>

password:

Login incorrect

login:

Если вы никогда не были зарегистрированы в системе UNIX, то ваша процедура

Регистрации может отличаться от описанной выше. Это может произойти в том случае,

Если администратор системы предусмотрел процедуру назначения временных паролей

Новым пользователям. Если вы имеете временный пароль, то система заставит выбрать

Новый пароль прежде, чем позволит зарегистрироваться.

Вынуждая вас выбирать новый пароль исключительно для вашего использования,

Система _________заботится о большей безопасности.

В общем, процедура входа в систему будет подобна следующей:

Вы устанавливаете контакт; система UNIX отображает подсказку login:. Введите

ваше регистрационное имя и нажмите клавишу <RETURN>.

Система UNIX выводит подсказку password:. Введите ваш временный пароль и

нажмите клавишу <RETURN>.

Система сообщит, что ваш временный пароль больше не действителен и предложит

Выбрать новый пароль.

Система предложит ввести ваш старый пароль. Введите временный пароль.

Система предложит ввести ваш новый пароль. Введите выбранный вами пароль.

Пароль должен соответствовать следующим требованиям:

- каждый пароль должен иметь, по крайней мере, 6 символов. Только первые 8

Символов являются значимыми;

- каждый пароль должен содержать, по крайней мере, 2 буквенных символа и

Одну цифру или специальный символ. Буквенный символ может быть набран

Либо на регистре больших символов либо малых;

- каждый пароль должен отличаться от вашего регистрационного имени.

Большие буквы и соответствующие им маленькие буквы эквивалентны;

- новый пароль должен отличаться от старого, по крайней мере, на три символа.

Примеры допустимых паролей:

Bak84ch

Dki40102

IGOR/,3S

Для проверки система просит вас заново ввести пароль. Введите снова пароль.

Если вы введете новый пароль второй раз не так как в первый раз, то система

Сообщит вам, что пароль не совпадает и предложит повторить процедуру регистрации

Снова. Когда пароли совпадут, система отобразит подсказку.

Следующий экран отображает описанную процедуру:

login: dko30123<CR>

password:<CR>

Your password has expired

Choose a new one

Old password:<CR>

New password:<CR>

Re-enter new password:<CR>

$

Когда системный администратор регистрирует пользователя в системе, с

регистрационным именем связываются две компоненты идентификации:

- идентификатор пользователя (user ID - UID);

- идентификатор группы, к которой он относится (group ID -GID).

Имя пользователя связывается с уникальным числом. Система использует его как

Инструмент в различных механизмах защиты в ОС UNIX, например, при защите файлов

Или при выполнении привилегированных команд.

Примечание: В любой ОС UNIX имеется одно специальное имя root,

принадлежащее т.н. суперпользователю, которое связано с UID= 0. Это означает, что

Пользователь имеет все системные привилегии.

Имя группы также связано с числом, которое обычно относится к группе

Пользователей, объединенных общими задачами, например, сотрудники отдела, студенты

Одного потока и т.д. Это число также используется механизмами защиты в системе. Если

Пользователь должен работать данными других групп, этот идентификатор связывается с

Именами других групп.

Вся регистрационная информация о пользователях системы хранится в файле

Структура и назначение полей файла /etc/passwd: - регистрационное имя; - не используется;

В современных версиях ОС UNIX зашифрованные пароли и относящаяся к ним

системная информация хранятся в файле /etc/shadow, структура и назначение полей

следующие:

- регистрационное имя;

- закодированный пароль;

- количество дней от 1.1.1970 до последнего изменения пароля;

- минимальный срок действия пароля (в днях);

- максимальный срок действия пароля (в днях);

- дополнительные данные.

В отличие от файлов, содержимое которого, как правило, доступно любому

Пользователю системы, содержимое файла в целях безопасности доступно только

Привилегированному пользователю (root).

Для определения собственных UID и GID, воспользуйтесь командой id.

Терминал является устройством ввода/вывода: вы используете его для ввода

Запросов системе UNIX, а система - для выдачи ответов вам. Видеотерминал отображает

Ввод и осуществляет вывод информации на экране дисплея.

При взаимодействии с системой UNIX вы должны быть осведомлены о

Соглашениях по вводу. Система UNIX требует, чтобы вы вводили команды маленькими

Буквами (за исключением некоторых команд, в которых присутствуют большие буквы).

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

Удалить строку, нажав одну или две клавиши. Обратите внимание, что клавиши,

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

Случаев различные клавиши могут быть выбраны для выполнения этих функций.

Подробное описание значения некоторых клавиш дано в последующих подразделах.

Соглашения по вводу следующие:

$ - подсказка системной оболочки (предлагает вам ввести вашу команду);

BACKSPACE> или <^h> - стереть символ;

<BREAK> -остановить выполнение программы или команды;

<Del> - удалить текущую командную строку;

<Esc> - когда используется с другим символом, то выполнить специальную

Функцию (называемую последовательностью переключения кода). Когда используется в

Режиме редактирования редактора vi, то означает конец режима ввода текста и возврат в

Командный режим;

< RETURN > - клавиша <RETURN>. Означает конец строки ввода и помещает

Курсор на новую строку;

<^d> - остановить ввод в систему или выйти из системы (завершить работу);

<^h> - возвратиться на один символ (для терминалов, у которых нет клавиши

BACKSPACE;

<^s> - временный останов вывода на экран;

<^g> - продолжает вывод на экран информации, которая была остановлена при

помощи <^s>.

Символ ^ означает управляющий символ <Ctrl>, то есть вы должны в этом случае

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

Что получится, если вы захотите использовать буквенное значение специальных

символов? Так как по умолчанию система UNIX интерпретирует специальные символы

Как команды, то вы должны сказать системе, что нужно игнорировать специальные

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

черта () позволяет вам сделать это. Введите перед любым специальным символом, с

Которым вы хотите обращаться в его неизменном виде. Например, вы хотите вывести с

помощью команды echo символ *. Чтобы предотвратить интерпретацию системой UNIX

знака * как запрос на вывод имен u1092 файлов текущего каталога, поставьте обратную косую

черту перед знаком *.

Появление на экране подсказки означает, что система UNIX распознала вас как

Полномочного пользователя и ждет от вас ввода команды.

В общем виде командная строка имеет следующую структуру:

имя [опции] [аргументы] < RETURN >

Имя команды, опции и аргументы должны отделяться друг от друга пробелом или

Знаком табуляции. Обработка командной строки интерпретатором начинается только

после нажатия клавиши < RETURN >.

В дальнейшем изложении функций команд предполагается:

Имя обязательный параметр команды

Шаблон выбираемый параметр

[…] необязательный параметр команды

Опции:

- являются признаком модификации команды и, как правило, состоят из одного

Символа;

- большие и маленькие буквы означают разные модификации;

- как правило, опции начинаются с символа – (минус) который не отделяется

Пробелом от остальных символов;

- опции могут быть скомбинированы любым образом, при этом знак минус

Можно использовать только один раз.

Аргументы указывают объекты, которые должны обрабатываться командой,

например:

- имя файла;

- номер процесса;

- данные.

Если вы знаете, что должна сделать вызываемая программа, но не уверены в

Правильном использовании синтаксиса, можно в командной строке после имени команды

указать опцию -?:

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

Имеется встроенное руководство (on-line), доступ к которому обеспечивают команды

Man и apropos.

В простейшем случае, для получения информации о любой команде, необходимо

указать ее имя в качестве аргумента команды man:

Man имя_команды

Команда apropos выводит список команд в соответствии с ключевым словом

(шаблоном), указанным в качестве аргумента команды:

apropos шаблон

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

$ passwd Setting password for user: dko30102 Old password:

Это означает, что вы успешно завершили работу с системой, и она готова

Зарегистрировать нового пользователя.

Если вы регистрировались с удаленного терминала, произойдет разрыв связи, о чем

Вас уведомит, например, приложение telnet. Прежде чем вы отключите терминал,

Обязательно завершите работу с системой.

Файлы и каталоги

Как и во многих современных операционных системах, в ОС UNIX файлы

организованы в виде древовидной структуры, называемой файловой системой (file

system). Каждый файл имеет имя, определяющее его расположение в дереве файловой

системы. Корнем этого дерева является корневой каталог (root directory), имеющий имя

"/".

Для ОС UNIX характерно, что в системе может присутствовать несколько файловых

Систем, которые могут иметь различную внутреннюю структуру, а файлы,

Принадлежащие этим файловым системам, могут быть расположены на различных

Устройствах. Имя файла является атрибутом файловой системы, а не набора данных на

Диске. Каждый файл в системе связан со своими метаданными, хранящимися в

индексных дескрипторах (inode), которые содержат все характеристики файла, в том

Числе и указатели на дисковые блоки, где хранятся данные файла. Имя файла в файловой

Системе является указателем на его метаданные, в то время как метаданные не содержат

Указателя на имя файла.

В ОС UNIX используется несколько различных типов файлов, различающихся по

Функциональному назначению и действиям операционной системы при выполнении тех

Или иных операций над файлами.

Обычный файл (ordinary files) представляет собой наиболее общий тип файлов,

Содержащих данные. Для ОС они представляют собой неструктурированный набор

Данных. Интерпретация содержимого файла производится программой, обрабатывающей

Файл. К этим файлам относятся текстовые файлы, исполняемые программы, бинарные

Файлы и т.д.

Каталог (directory). С помощью каталогов формируется логическое дерево

Файловой системы. Каталог - это файл, содержащий имена находящихся в нем файлов и

Указатели на дополнительную информацию (метаданные__________), позволяющие операционной

Системе производить операции над этими файлами.

Специальный файл (special file) устройства обеспечивает доступ к физическому

Устройству. В UNIX различают символьные и блочные файлы устройств.

Символическая ссылка (symbolic link). Как было сказано выше, каталог содержит

Имена файлов и указатели на их метаданные. Сами метаданные не содержат ни имени

Файла, ни указателя на это имя. Это позволяет одному файлу иметь несколько имен в

Файловой системе.

Имена жестко связаны с метаданными и, соответственно с данными файла, в то

Время как сам файл существует независимо от того, как его называют в файловой

Системе. Такую ссылку можно создать с помощью команды ln (см. дальше).

К файловой системе применимы следующие понятия:

- место расположения на жестком диске файловой системы (filesystem) -

Область на диске, которая специально отформатирована, чтобы предоставить

Операционной системе осуществлять быструю адресацию и доступ к блокам

Диска, находящимся внутри этой области;

- дерево файлов (file system) - набор из одной или нескольких файловых

Систем, которые логически объединены в единую иерархическую

Древовидную структуру;

- файл (file) - именованный объект внутри файловой системы, в котором

Хранятся данные. Файл может быть пустым (т.е. не содержать данных), однако

Он предоставляет определенную информацию операционной системе;

- каталог (directory) - файл, который содержащий имена находящихся в нем

Файлов. Каталоги определяют положение файла в дереве файловой системы,

Поскольку сам файл не содержит информации о своем местонахождении;

- Подкаталог (subdirectory) - каталог, содержащийся внутри другого каталога.

Каталоги, которые содержат подкаталоги, называются родительскими

Каталогами. Все каталоги имеют родительские подкаталоги, за исключением

Корневого каталога, который является сам себе родителем;

- имя файла (filename) - строка символов, которая создается в каталоге для

Идентификации файла;

- путь (pathname) - строка из одного или более имен файлов, объединенных

символом "/". Путь специфицирует место расположения файла внутри

Древовидной файловой структуры (т.е. внутри файлового дерева).

ОС UNIX для работы с файлами не использует их имя. Вся информация,

Необходимая операционной системе располагается в массиве дескрипторов, в котором

Метаданные файла однозначно связаны с порядковым номером соответствующего

Дескриптора.

Имя файла хранится вместе с номером его дескриптора в файлах специального типа

– каталогах.

Имена файлов ОC UNIX состоят из комбинации символов ASCII. Длина имени

Может достигать 255 символов (некоторые файловые системы ограничивают длину

Имени до 14 символов).

В именах не разрешается использовать символы, имеющие специальное назначение:

; | < > ` " ' $ ! % & * ? ( ) [ ]

Имена файлов, которые начинаются с символа (.) относятся к скрытым (hidden)

Файлам, которые не выводятся по умолчанию командой ls. Для того чтобы вывести

имена скрытых файлов, необходимо использовать опцию –a в команде ls.

В именах файлов различаются заглавные и прописные буквы, поэтому имена Test и

Test относятся к различным файлам.

Файловая система ОС UNIX поддерживает несколько типов файлов:

- обычные файлы;

- каталоги;

- символические связи;

- специальные файлы устройств.

Если выполнить команду ls –l, которая выводит информацию о содержимом

Каталога, то можно увидеть, что первый символ первого слова каждой строки указывает

на тип соответствующего файла. Значение символов следующее:

- - обычный файл;

d – каталог;

L – символическая связь;

C,b - файл устройства.

Обычный файл - r w - r w - - - - . . .

Каталог d r w x r w x - - - . . .

Символическая связь l r w x r w x r w x . . .

Файл устройства c r w - r w - - - - . . .

Обычные файлы содержат неструктурированную последовательность байтов.

Приложение, работающее с таким файлом, определяет его структуру и содержание.

Обычно такие файлы можно отнести к одной из следующих категорий:

- текстовые, содержащие набор символов. Например, письма, отчеты,

Командные файлы, используемые интерпретатором shell;

- файлы, содержащие наборы числовых или текстовых данных какого-либо

Приложения, например, электронные таблицы, базы данных или u1076 документы

Текстовых процессоров;

- исполняемые программы в двоичном виде, содержащие машинные

Команды и данные, например, программы, связанные с выполнением команд

ОС UNIX или программы приложений.

Используя команду file, можно определить тип файла. Команда допускает

Использование нескольких аргументов, т.е. возможность определения типа нескольких

разных файлов:

file имя_файла [ имя_файла …]

Каталоги являются специальными файлами, которые предназначены для

Организации иерархической структуры файловой системы.

Каталоги определяют положение файла в дереве файловой системы, поскольку сам

Файл не содержит информации о своем местонахождении. Подобно обычным файлам,

Каталоги содержат данные, однако, в отличие от обычных файлов, ядро накладывает

ограничения на структуру этих данных: каталоги содержат для каждого файла данные в

виде связки "номер индексного дескриптора – имя файла":

- номер индексного дескриптора используется в качестве индекса блока таблицы

Индексов, где содержится вся информация о файле;

- имя файла является текстовой информацией (ASCII). Каталог не может

Содержать одинаковые имена, относящиеся к нескольким файлам.

В качестве первого имени каждого каталога используется "точка" (.), это – синоним

собственного имени каталога, в качестве второго имени используется "две точки" (..),

это – синоним имени вышестоящего ("родительского") каталога.

Следует напомнить, что имена файлов, начинающиеся с символа "точка", являются

скрытыми, они могут быть выведены командой ls только с опцией –a.

Когда добавляется новое имя файла, размер каталога автоматически увеличивается,

Однако, при удалении имени файла из каталога, размер каталога не уменьшается; ядро

Системы использует освободившуюся часть каталога для размещения вновь создаваемых

записей имен файлов (точнее связок "номер индексного дескриптора – имя файла").

Специальный файл устройства обеспечивает доступ к устройству. В UNIX

Различают символьные (character) и блочные (block) файлы устройств.

Символьные файлы связаны с драйверами устройств, использующими

Небуферизированный обмен данными с устройствами, к которым относятся терминал,

Принтер, мышь.

Блочные файлы связаны с драйверами устройств, которые позволяют производить

обмен данными в виде пакетов фиксированной длины – блоков.

Доступ к некоторым устройствам может осуществляться как через символьные, так

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

/dev.

Например, чтобы вывести имя специального файла терминала, с которого Вы

Вводите команды, можно воспользоваться командой

$ tty

/dev/tty01

$

Символические связи – это специальные файлы, которые содержат в качестве

данных символическую ссылку на другой файл. Эти данные указывают путь (path) к

Файлу внутри файловой системы. Ядро системы автоматически определяет по

Содержимому файла символической связи место расположения файла в файловом дереве.

Следует различать жесткую связь (hard link), которая является естественной

Формой связи, и символическую связь (soft link), связанную с особым типом файла и

Позволяющую косвенно адресовать файл.

Как было сказано выше, каталог содержит имена файлов и указатели на их

Метаданные. Сами метаданные не содержат ни имени файла, ни указателя на это имя. Это

Позволяет создавать в каталоге записи, в которых несколько различных имен будут

Связаны с одним и тем же номером индексного дескриптора. Такая связь называется

Жесткой связью.

Например, если в каталоге содержится имя файла file1, то создание еще одного

Имени file2, связанного с тем же номером дескриптора, что и file1, можно с помощью

команды ln:

$ ln file1 file2

Наличие у файла нескольких имен можно определить для текущего каталога

командой:

$ ls –l

. . .

. . .

-rw-r--r-- 2 dmo202-02 dmo202 6344 Now 22 10:33 file1

-rw-r--r-- 2 dmo202-02 dmo202 6344 Now 22 10:40 file2

. . .

$

Во второй колонке строки указано число жестких связей данного файла.

В отличие от жесткой связи, символическая связь адресует файл, который, в свою

Очередь, ссылается на другой файл. Данные файла, являющегося символической связью,

содержат имя целевого файла. Такой файл создается u1082 командой ln с опцией -s:

$ pwd

/home/dk401/dk40101

$ ln –s file1 /home/dk401/dk40101/symfile1

$ cd /home/dk401/dk40101

$ ls –l

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

lrwxrwxrwx 1 dk40101 dk401 15 Now 22 10:33

file1 symfile1 -> /../../dk401/dk40101/file1

. . . . . . . . . . . . . . . . . . . . . . . . . .

$

При выводе содержимого файла symfile1 появятся данные файла file1.

В отличие от жесткой связи, действие которой распространяется только в пределах

Одной файловой системы, символическая связь может адресовать файл, находящийся в

Другой файловой системы.

Команды обращения к файловой системе

Когда пользователь регистрируется в операционной системе UNIX, его начинает

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

Команды, вводимые пользователем. Кроме того, пользователь получает в свое

Распоряжение рабочий каталог, обычно называемый домашним каталогом.

Домашний каталог обычно содержит подкаталоги, файлы данных и файлы

Конфигурации рабочей среды пользователя. Домашние каталоги обычно размещаются в

каталоге /home или его подкаталогах, например, /home/dk401/dk40102.

Вывод содержимого каталога можно получить с помощью команды ls, в качестве

аргумента которой должно указываться имя файла:

ls опция [имя_файла . . .]

Имя файла, которое используется в качестве аргумента команды, может быть

представлено в двух формах: абсолютной и относительной.

Абсолютное (absolute) имя, иногда называемое полным (full) именем, содержит

Полный путь - перечень всех имен каталогов от корневого до локального, в котором

Записано имя целевого файла, например, абсолютное имя файла file2 в каталоге

пользователя dk40101:

/home/dk401/dk40101/file2

Формально, полное имя файла представляет собой последовательность слов,

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

каталога. Абсолютное имя всегда начинается с символа /, представляющего корневой

Каталог общего логического дерева файловой системы.

Команда pwd выводит полное имя пути текущего каталога, например:

$ pwd

/home/dk401/dk40101

Относительное (relative) имя пути файла всегда указывает путь к файлу

Относительно текущего каталога. Для доступа к файлу или подкаталогу текущего

Каталога удобно использовать относительное имя пути. Например, если имя текущего

каталога /home/dp401/dp40110, то вывод u1089 содержимого каталога

/home/dp401/dp40110/tests/examples можно получить, используя относительное имя:

$ ls –l tests/txamples

При этом следует помнить:

- относительное имя никогда не начинается символом / (слеш);

- в имени пути можно использовать специальные имена каталогов (.) и (. .),

Которые являются, соответственно, именами текущего и вышестоящего

(родительского) каталога.

Например, если имя текущего каталога /usr/sbin, и необходимо вывести содержимое

каталога /usr/lib/mail, надо выполнить команду:

$ ls –l ../lib/mail

Для перехода из текущего каталога в другой каталог используется команда cd, в

Качестве аргумента которой указывается имя (абсолютное или относительное) целевого

каталога. Например, если текущим каталогом является /home/dk401, то для перехода в

каталог /home/dk401/dk40101 надо выполнить команду:

$ cd dk40101

Чтобы перейти в каталог, который находится на два каталога выше текущего,

можно использовать имя точка-точка (..):

$ cd ../..

Для возвращения в домашний каталог из любого текущего каталога файлового

дерева, достаточно выполнить команду без аргументов:

$ cd

Если в команде указано имя обычного файла, то выводится сообщение об ошибке:

$ cd file1

sh: file1: not a directory

$

Текстовые файлы содержат символы, которые могут воспроизводиться

Устройствами ввода-вывода (печатные символы). Для файлов такого типа в ОС UNIX

используются команды, позволяющие просмотр текстовых файлов: cat, more, pg, head,

Tail. Эти команды не используются для просмотра каталогов и бинарных файлов.

Формат команды cat следующий:

cat имя_файла [ имя_файла . . . ]

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

(обычно на дисплей). Команда не имеет возможности остановки вывода по заполнению

Экрана, если содержимое файла превышает число строк экрана дисплея.

Для прекращения вывода следует использовать комбинацию клавиш: <Ctrl>s или

<Ctrl>q.

Нажатие клавиши <Del> завершает команду и возвращает к текущему процессу sh.

Команды head и tail позволяют вывести только часть файла. Форматы команд

следующие:

head [-число] имя_файла [ имя_файла . . . ]

tail [-число] имя_файла [ имя_файла . . . ]

Команда head выводит первые строки файлов u1074 в количестве, определенном опцией -

Число (по умолчанию 10 строк).

Команда tail выводит последние строки файлов в количестве, определенном опцией

–число (по умолчанию 10 строк).

Команда more осуществляет постраничный вывод текста файла. Формат

команды следующий:

more имя_файла [ имя_файла . . . ]

Подсказка, которая выводится в нижней строке экрана, указывает на часть

просмотренного текста, выраженную в процентах:

-More- (xx%)

На подсказку можно ответить следующим образом:

- нажатием клавиши <Spaсe> осуществляется вывод очередной страницы;

- нажатием клавиши <Enter> осуществляется вывод очередной строки;

- нажатием клавиши h осуществляется вывод окна подсказок;

- нажатием клавиши b осуществляется вывод предыдущей страницы;

- нажатием клавиши q осуществляется завершение команды.

Команда pg осуществляет постраничный вывод текста файла. Она с одинаковым

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

pg имя_файла [ имя_файла . . . ] На подсказку (:) в нижней части экрана можно ответить: - нажатием клавиши <Enter> - осуществляется вывод очередной страницы;

Команды hd и od используются в тех случаях, когда файл содержит информацию,

Которую нельзя представить в виде печатных символов, такой информацией может быть

Набор двоичных данных, или данных, содержащих управляющие символы.

Команда hd выводит данные в шестнадцатеричном формате.

Команда od выводит данные в восьмеричном формате.

Обе команды позволяют в качестве аргументов указывать несколько имен файлов.

Создание файлов и каталогов

Файлы в ОС UNIX создаются командами и утилитами, такими, например, как

Текстовый редактор, который позволяет создать файл и поместить вы него данные. В

UNIX используется несколько различных типов файлов, различающихся по

Функциональному u1085 назначению и действиям операционной системы при выполнении тех

Или иных операций над файлами, однако, структура файлового дерева не зависит от типа

Файла. Существуют специальные команды, позволяющие отличать файлы от каталогов,

Создавать файлы и каталоги, переносить файлы, а также исследовать их содержимое.

Для создания пустых (не содержащих данные) файлов, используется команда

touch:

touch имя_файла [имя_файл ...]

Если имя_файла является новым для каталога, то создается пустой файл.

Если имя_файла уже существует в каталоге, то его данные (по умолчанию) будут

Потеряны.

Для создания новых каталогов используется команда mkdir:

mkdir имя_каталога [ имя_каталога . . .]

При создании новых каталогов, старайтесь следовать некоторые соглашения,

например, для того, чтобы различать имена файлов и каталогов:

Используйте заглавную букву на месте первой буквы имени каталога,

создавайте отдельные каталоги для файлов, связанных одной темой: один каталог

Для баз данных, другой для электронных таблиц, третий для текстовых файлов и т. д.

Опция –p команды mkdir позволяет создать дочерний каталог во вновь создаваемом

каталоге:

mkdir –p имя_каталога/имя_подкаталога . . .

Для копирования файлов используется команда cp:

cp имя_исходного_файла имя_конечного_файла

Если конечный файл уже существует, то его содержимое меняется на содержимое

Исходного файла.

Команда может применяться как для копирования одного исходного файла в

конечный файл, так и нескольких файлов:

cp имя_исходного_файла имя_конечного_файла

cp имя_исходного_файла1 [имя_исходного_файла2 …]

Имя_конечного_файла

В первом случае, когда исходный файл копируется в конечный:

- если конечный файл является каталогом, то исходный файл копируется в этот

Каталог с тем же именем;

- если конечный файл является обычным файлом и файл с таким же именем

Существует, то содержимое исходного файла заменяет содержимое уже

Существующего файла.

Во втором случае все исходные u1092 файлы копируются с теми же именами в конечный

Файл, который должен быть каталогом.

В аргументах команды могут указываться как абсолютные, так и относительные

Имена файлов.

Если в качестве аргумента конечного файла указано имя каталога, то этот каталог

Должен уже существовать, так как команда cp не создает новых каталогов.

Для копирования файлов в текущий каталог можно использовать имя . (точка):

$ cp ../dp40101/file .

При отсутствии соответствующих прав доступа как к исходному, так и к конечному

Файлам, копирование не будет выполнено, о чем будет выдано сообщение об ошибке.

Перемещение файлов можно выполнить командой mv:

mv имя_исходного_файла имя_конечного_файла

Если конечный файл уже существует, то его содержимое меняется на содержимое

Исходного файла.

Команда может применяться как для перемещения одного исходного файла в

конечный файл, так и нескольких файлов:

mv имя_исходного_файла имя_конечного_файла

mv имя_исходного_файла1 [имя_исходного_файла2 …]

Имя_конечного_файла

В первом случае, когда исходный файл перемещается в конечный:

- если конечный файл является каталогом, то исходный файл перемещается в

Этот каталог с тем же именем;

- если конечный файл является обычным файлом и файл с таким же именем

Существует, то содержимое исходного файла заменяет содержимое уже

Существующего файла.

Во втором случае все исходные файлы перемещаются с теми же именами в

Конечный файл, который должен быть каталогом.

Если имена исходного и конечного файлов относятся к одному каталогу, то

команда изменяет имя исходного файла на имя конечного:

Mv oldname newname

Для удаления файлов используется команда rm:

rm имя_файла [имя_файла …]

Команда rm удаляет файлы, имена которых указаны в команде.

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

Чтобы случайно не был потерян нужный файл. Это особенно полезно в тех случаях, когда

Удаляется сразу несколько файлов, имена которых явно не указаны в качестве аргументов

Команды.

Команда rm позволяет делать эту проверку в интерактивном режиме. Для этого

используется опция –i:

$ rm –i *

file2 ?

$

В этом случае требуется отвечать на каждый запрос нажатием клавиш y<Enter>,

если файл надо удалить или n<Enter>, если файл удалять не следует.

Команда rm по умолчанию удаляет только файлы, однако использование опции –r

Разрешает рекурсивно удалять файлы и каталоги, причем, не выдавая при этом никаких

Сообщений.

$ rm –r *

$

Эта команда удаляет все файлы текущего каталога и все файлы нижестоящих

Каталогов.

ВНИМАНИЕ! Будьте особенно осторожны при использовании приведенной выше

команды!

Для удаления каталогов используется команда rmdir:

rmdir имя_каталога [имя_каталога …]

Эта команда удаляет каталоги при условии, что они являются пустыми, т.е. не

Содержат записей с индексами файлов.

Работа с файлами

В ОС UNIX имеется много команд, которые помогают работать с файлами:

- осуществлять их поиск внутри файлового дерева;

- находить информацию внутри файла по шаблону;

- сравнивать содержимое двух файлов и т.д.

Ниже будет рассмотрена группа такого типа команд.

Для поиска файлов и каталогов используется команда find. Путем использования

Различных опций (в этой команде опции задаются не отдельными символами, как это

Делается в большинстве команд UNIX, а словами) можно указать различные критерии

Поиска, например, поиск по имени (-name), поиск по длине файла (-size), поиск по типу

Файла (-type) и т.д.

find имя_каталога расширение [расширение …]

Команда осуществляет поиск по маршруту от заданного имени_каталога по всем

Нижестоящим каталогам. Расширение содержит спецификацию критерия поиска и имен

Искомых файлов. Этот аргумент команды может содержать, также список действий,

Выполняемых с каждым найденным файлом. Список расширений анализируется слева

Направо и, если проверка по критерию дает истину, выполняется следующая проверка.

Выражение расширение вычисляется как логическая операция И. Если условие не

Выполняется, проверка для текущего файла завершается и анализируется следующий

Файл.

Наиболее полезными являются –print (ее желательно указывать, если необходимо

Просмотреть полученные результаты) , -name и -type. Другими опциями пользуются, как

Правило, опытные пользователи и администраторы.

$ find . –name fil.text –print

Приведенная выше команда реализует поиск имен файлов file.text, начиная с

Текущего каталога и вывод результатов на стандартное устройство вывода.

Команда выводит сообщение об ошибке при попытке поиска файла в каталоге,

Доступ к которому данному процессу ограничен соответствующими правами.

Для поиска строк информации файлов, соответствующих шаблону (набору

символов), используется команда grep:

grep [опции] шаблон имя_файла [имя_файла ...]

Шаблон, в общем виде, представляет собой регулярное выражение, которое может

Содержать метасимволы (для более подробного знакомства см. команду ed встроенного

Руководства). Однако шаблон может быть набором из алфавитно-цифровых символов.

$ grep dp40102 /etc/passwd

Приведенная выше команда выводит строки файла /etc/passwd, содержащие набор

Символов dp401-02.

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

используется команда diff:

diff [опции] имя_файла1 имя_файла2

Команда всегда предполагает, что необходим переход от имя_файла1 к

имя_файла2. Для различающихся строк файлов выводится информация. Строкам из

файла имя_файла1 предшествует символ <, а строкам из файла имя_файла2 – символ >.

Менее информативная команда cmp сравнивает данные двух файлов.

cmp [опции] имя_файла1 имя_файла2

При этом файлы могут быть как текстовыми, так и не текстовыми. Команда

сообщает о первом отличии между файлами, например:

$ cmp file1 file2

file1 file2 differ: char 5, line 1

$

Для нумерации строк текстового файла используется команда nl:

nl [опция] имя_файла [имя_файла ...]

Опциями файла можно задать шаг нумерации, начальное значение и т.д.

Для подсчета символов, слов и строк файла используется команда wc:

wc [опция] имя_файла

По умолчанию команда выводит имя файла и разделенные пробелами числа строк,

Слов и символов.

Управление ___________правами доступа к файлам

Установка прав доступа к файлам в ОС UNIX позволяет эффективно защищать

Файлы от несанкционированного доступа к нему с целью изменения его содержимого,

Считывания из него информации или его исполнения. К файлами могут обращаться

различные, с точки зрения UNIX, категории пользователей: владельцы файла, члены

Группы, к которым принадлежит владелец и члены других групп зарегистрированных

Пользователей (в этом ряду отсутствует администратор системы, как пользователь

Имеющий все права доступа к любому файлу).

Рассмотрим результат вывода команды ls –l, с помощью которой имееися

Возможность вывода всех атрибутов файла. Например, для файла dat, находящегося в

текущем каталоге, получен следующий результат:

$ ls –l dat

-rw-r--r-- 1 dk30101 dk301 24 22 Sep 11:30 dat

Рассмотрим подробнее результат вывода:

- первое слово (-rw-r--r--) в первом символе информацию о типе файла, затем

Девятью символами определяются права доступа к файлу;

- второе слово (1) указывает число ссылок к файлу;

- третье слово (dk30101) определяет имя владельца файла;

- четвертое слово (dk301) определяет имя группы, к которой относится владелец

Файла;

- пятое слово (24) указывает на размер файла в байтах;

- далее (22 Sep 11:30) показывает дату и время создания файла (11:30) в часах и

Минутах;

- в конце строки указывается имя файла (dat).

Владельцем файла всегда является пользователь, процесс которого создал файл.

Этот пользователь имеет привилегии в работе с созданным файлом. В частности, он

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

Изменить имя владельца может только администратор (root) или текущий

владелец файла. Это он может сделать с помощью команды chown:

chown имя_владельца имя_файла [имя_файла ...]

Имя_владельца – это имя нового владельца файлов. После изменения имени старый

Владелец теряет свои привилегии.

Изменить имя группы владельца может администратор (root) или владелец

файла. Это он может сделать с помощью команды chgrp:

chown имя_владельца имя_файла [имя_файла ...]

Пример

$ ls –l dat

-rw-r--r-- 1 dk30101 dk301 24 22 Sep 11:30 dat

$ chgrp sys dat

$ chown root dat

$ ls –l dat

-rw-r--r-- 1 root sys 24 22 Sep 11:30 dat

$

Права доступа, которые устанавливает владелец файла (или администратор)

Определяют, кто имеет доступ к файлу и что он может сделать с этим файлом.

Права доступа определяются для трех категорий пользователей:

- владельца (user);

- члена группы владельца (group);

- прочих пользователей (other).

Права доступа определяют три вида доступа:

- разрешение на чтение (read) файла (r);

- разрешение на запись (write) (w);

- разрешение на исполнение (execute) или поиск (search) (x).

Таким образом, девять символов, определяющих права доступа к файлу могут

Принимать значения r, w или x, если соответствующее право доступа установлено, и

Символ минус (-), если это запрещено, причем первые три символа слова прав доступа

относятся к правам владельца, вторые – к правам членов группы, последние – к прочим:

r w x r w – r w –

Следует различать назначение прав доступа к файлам и каталогам.

Права доступа к файлу:

- read (r) дает возможность пользователю открыть файл и просмотреть его

Содержимое. Команды, требующие доступ к содержимому файла, требуют

Права доступа на чтение, например, команды cat, more, cp;

- write (w) позволяет изменять содержимое файла. Команды, требующие доступ

К изменению файла, требуют права доступа на запись, например, команды vi,

Mail, cp;

- execute (x) дает возможность пользователю выполнить двоичную программу

Или командный файл подобно любой команде ОС UNIX.

Права доступа к каталогу:

- read (r) дает возможность пользователю вывести список имен файлов и

Каталогов (прочитать содержимое каталога);

- write (w) позволяет изменять содержимое каталога, т.е. добавить или удалить

Имя (файла или каталога) из каталога. Обычно только владелец каталога имеет

Разрешение на запись в каталог;

- execute (x) дает возможность осуществить поиск по каталогу. Без этого права

Доступа невозможно использовать имя каталога как компоненту полного

Имени файла. Отсутствие права на исполнение не позволит сменить каталог

При выполнении команды cd.

Права доступа могут модифицироваться владельцем файла или пользователем

root с помощью команды chmod:

chmod режим [режим …] имя_файла [имя_файла …]

Полномочия доступа можно задавать абсолютно – путем спецификации режима в

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

Последний способ более популярен и позволяет добавлять и удалять права доступа

Выборочно.

Изменение прав доступа - символический режим

Режим состоит из следующих компонентов:

[ugoa] [+|-|=] [[r] [w] [x]]

Первая компонента может состоять из одного или более символов – u (user), g

(group), o (other) или a (all), указывающих на категорию пользователей, для которой

Устанавливаются права доступа, владелец (u), группа (g), прочие (o) или все (a).По

Умолчанию используется a.

Вторая компонента должна быть одним из трех символов +, - или =, означающих,

Соответственно, добавление полномочия для заданного класса пользователей, удаление

Полномочия для заданного класса пользователей или установку полномочия для

Заданного класса пользователей и отмене всех других не специфицированных

Полномочий.

Третья компонента может быть любой комбинацией символов r, w или x

соответствующих разрешениям на чтение, запись или выполнение/поиск объекта

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

Пробелы между компонентами выражения не допускаются.

Изменение прав доступа - абсолютный режим

В абсолютный режиме слово режим команды chmod представляет собой три (или

Более) восьмеричные цифры, каждая из которых отражает права доступа для

Соответствующей категории пользователей (владелец, группа, прочие).

Цифра определяет соответствующее полномочие: r=4, w=2, x=1 для каждой из

категорий пользователей – u, g, o, т.е. устанавливает соответствующий бит в слове прав

доступа файла (см. команду ls –l). Значение 1 бита означает разрешение

соответствующего права, 0 – запрещение.

ПРИМЕЧАНИЕ. Абсолютная форма не допускает выборочной установки прав

Доступа и требует указания о соответствующих правах явно сразу для всех категорий

Пользователей.

Примеры символического и абсолютного режима установки прав доступа:

Символическая форма:

$ ls –l script

-rwxrwxr-- 1 dko30101 dko301 23 Okt 16 14:25 script

$

Владелец и группа имеют права доступа на чтение, запись и выполнение, а прочие

Только разрешение на чтение.

$ chmod g-w, o+x-r script

-rwxr-xr-x 1 dko30101 dko301 23 Okt 16 14:25 script

$

В результате владелец сохранил права доступа на чтение, запись и выполнение,

Группа утратила право доступа на чтение, а прочие утратили разрешение на чтение, но

Получили право на исполнение файла.

Абсолютная форма:

$ ls –l script

-rwxrwxr-- 1 dko30101 dko301 23 Okt 16 14:25 script

↓ ↓ ↓

7 7 4

$ chmod 755 script

-rwxr-xr-x 1 dko30101 dko301 23 Okt 16 14:25 script

↓ ↓ ↓

7 5 5

Пользователь может управлять установкой прав доступа к файлам и каталогам,

Когда они создаются, с помощью команды umask, которая позволяет вывести или

Изменить текущую маску создания файла, эта маска определяет заданные по умолчанию

права доступа, устанавливаемые при создании нового файла или каталога:

umask [маска]

Маска представляет собой восьмеричное число из трех цифр, где каждая цифра

Определяет права доступа владельца, группы и всех прочих пользователей. Действие этой

маски для каждой категории пользователей следующее: если рассматривать

Восьмеричное значение маски как двоичное число, то биты маски, равные 0 будут

Соответствовать разрешению доступа, а 1 запрещению доступа. Однако действие маски

Различно по отношению к файлам и каталогам.

Обычно по умолчанию (это определяет администратор системы) вновь

Создаваемым файлам устанавливаются права доступа 666 (rw-rw-rw-), а каталогам 755

(rwxr-xr-x).

Чтобы вывести на экран установленную маску, можно выполнить команду без

аргументов:

$ umask

$

Чтобы у вновь создаваемых файлов для категории прочие было отобрано право на

запись, команда должна иметь следующий вид:

$ umask 002

$

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

право доступа к каталогу – описание):

Rw-) (rwx) предоставляет права чтения и записи файлам, записи

и поиска – каталогам;

Rw-) (rw-) предоставляет права чтения и записи файлам и

Каталогам;

2 (r--) (r-x) предоставляет права чтения файлам, чтения и поиска –

Каталогам;

R--) (r--) предоставляет права только чтения файлам и

Каталогам;

4 (-w-) (-wx) предоставляет права записи файлам, записи и поиска –

Каталогам;

W-) (-w-) предоставляет права записи файлам, и каталогам;

X) не предоставляет никаких прав доступа файлам,

Представляет право поиска каталогам;

Отменяет все права доступа к файлам и каталогам.

Работа с текстовыми файлами

Текстовые файлы относятся к категории обычных файлов, которые содержат

Информацию, отображаемую в виде печатных символов. В ОС Unix используется

Множество подобных файлов, в которых содержится информация о конфигурации

Системы, процедурах, именах и паролях пользователей и т.д. Любой пользователь имеет

Возможность создания и модификации (редактирования) текстового файла в своем

Регистрационном каталоге, который будет содержать собственные данные пользователя.

Для этого используются программы – редакторы текстов.

Текстовым редактором является программа, используемая для записи и

Модификации текстового файла. В отличие от текстового процессора (word processor),

Текстовый редактор обычно не содержит функций форматирования текста. В этом есть

Определенный смысл, поскольку редактор становится более быстрым и удобным в

Использовании и, что особенно важно при написании текстов программ, не вносит в

Текст файла служебных (управляющих) знаков.

В ОС Unix имеется несколько текстовых редакторов:

- ed;

- ex (extended editor -расширенный редактор);

- семейство редакторов vi.

В любой системе Unix всегда можно найти старый надежный редактор ed (ex),

Базовые команды которого легко освоить и применять для простых операций создания

Текстовых файлов и их исправления. Редактор ed (ex) является основой многих других

Текстовых редакторов, в частности, редакторов семейства vi.

В семейство редакторов vi входят такие редакторы, как viev, vedit и сам vi. Все они

Выполняют полный вывод текста на экран и позволяют управлять перемещением курсора

На экране. Все редакторы используют одну и ту же структуру команд, однако, имеют

следующие различия:

View используется только для вывода текстового файла на экран, его просмотра

Или для режима поиска данных, при этом невозможно внести изменения в файл;

Vedit это версия экранного редактора vi, предназначенная для неопытных

Пользователей; по умолчанию в нее включен режим пояснений;

Ex строчно-ориентированный редактор, не имеющий функций управления экраном.

Экранный редактор vi имеет три основных рабочих режима:

- режим ввода текста;

- командный режим;

- режим перехода в ex.

В режиме ввода текста вводимые с клавиатуры символы поступают во временный

этом режиме выполняются четыре функции: - вставки (например, в любом месте строки); - добавления (например, после позиции курсора);

В командном режиме нажимаемые клавиши интерпретируются как команды

редактирования vi. Вводимые команды не отражаются на экране. При нажатии <Esc>

Происходит возвращение в командный режим.

В режиме перехода в ex ввод с клавиатуры интерпретируется как команда

Редактора ex. При этом в начале строки состояния (в нижней части экрана) выводится

приглашение на ввод команды (символ двоеточие –":"). После двоеточия выводится

Курсор. Вводимые команды отображаются на экране сразу, но действие их начинается

после нажатия клавиш <Return> или <Esc>.

Синтаксис командной строки вызова редактора:

vi [имя_файла]

Если создается новый файл, то на экране (речь идет об экране, размером 80 на 25

символов) будут выводиться 23 символа "~" (тильда), расположенных в первой позиции

Каждой строки (со 2 по 24), в строке 25 (строка состояния) появляется соответствующее

сообщение (например, "text.data" [New file]). Курсор будет находиться в позиции 1

строки 1. Тильды – это просто маркеры, указывающие пустые строки (т.е. строки, не

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

Сохраняются в файле и последовательно исчезают по мере ввода данных. Строка

Состояния используется не только для сообщения о различных условиях, но и для ввода

Команд редактора ex.

Если файл существует, то на экране отобразится начало текста файла.

перейти в командный режим (нажать клавишу <Esc>) и ввести: :set showmode В редакторе vedit эта функция устанавливается автоматически.

Система ввода и вывода

результаты их выполнения выводятся на дисплей терминала, которые часто называют стандартными устройствами ввода/вывода. Некоторых команды, такие как pr или… перехватывают вывод на стандартные устройства и посылают данные в файл или на

Программы и процессы

внешней памяти. Программы могут быть пользовательскими или системными, т.е. находящимися в составе ОС (команды ОС Unix). Как и все другие файлы,… имеет своего владельца и группу, к которой он принадлежит. Для всех категорий

Whodo

Какие процессы порождены вашим процессом shell? Определите уникальные

идентификаторы (PID) каждого процесса.

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

Оболочка (shell) использует этот вызов, чтобы создать процесс, который выполнит

введенную команду.

Схема создания и выполнения процесса выглядит следующим образом:

- родительский процесс выполняет системный вызов fork, который создает

новый процесс, обычно идентичный родительскому процессу (другими

совами, создается копия родительского процесса);

- потомку присваивается уникальный номер (PID);

- потомок замещает текущую программу новой программой (обращаясь к

системному вызову exec). Новая программа выполняется с атрибутами

процесса потомка (полученными по наследству от родительского процесса);

- потомок завершает свою работу с помощью системного вызова exit. По

завершению процесса потомка все занимаемые ресурсы освобождаются и

возвращаются системе;

- одновременно родительский процесс обычно выполняет системный вызов wait,

который приостанавливает выполнение родительского процесса до тех пор,

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

терминал в этом случае является ресурсом потомка, поэтому до завершения

работы потомка он не будет доступен родительскому процессу.

Процесс может существовать, но не выполняться центральным процессором

компьютера, например, находиться в состоянии ожидания ввода-вывода или завершения

процесса-потомка, т.е. находиться не в активном состоянии. Ядро может в этом случае

освободить принадлежащие ему ресурсы и передать их для работы другому процессу.

Кроме того, часть или вся память такого процесса может быть скопирована в

специальную область памяти на диске, что позволит освободившуюся память

предоставить другим процессам. Такое действие называется подкачкой (swapping).

Процесс завершается в двух случаях:

- программа процесса выполнила системный вызов exit, который приводит к

завершению процесса;

- процесс получил сигнал от пользователя или от операционной системы,

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

такие сигналы в любое время, например, при нажатии пользователем клавиши

<Del>, завершении работы пользователя или выключении питания

компьютера.

Например, выполняется команда date. Ваш процесс shell порождает потомка,

который выполняет программу date (программа находится в файле /bin/date). После того,

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

обратится к системному вызову exit. Родитель (текущий процесс shell), дождется

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

Используя команду psОС Unix, можно получить информациюо состоянии всех

процессов в текущий момент времени.

Формат команды:

ps [опции [аргументы] . . .]

В зависимости от используемых опций выводится полная или сокращенная

информация о состоянии процессов. Если в команде не указываются опции и аргументы,

выводится таблица процессов пользователя.

Таблицу процессов, содержащую более подробную информацию, можно увидеть с

помощью ряда опций команды ps:

–e позволяет получить информацию обо всех процессах системы;

–f дает возможность получить подробную информацию о процессах

пользователя и содержит, например, столбцы:

UID – идентификатор пользователя, который запустил процесс;

PPID – идентификатор процесса-родителя;

C – фактор оценки загрузки процессора процессом в предыдущий

интервал времени;

sh

PID=47

PPID=1

sh

PID=64

PPID=47

sh

PID=47

PPID=1

sh

PID=47

PPID=1

sh

PID=64

PPID=47

fork

exec

wait

STIME– время старта процесса;

CMD – имя процесса;

–l позволяет получить список всех атрибутов процесса;

–u регистрационное_имя позволяет получить информацию о процессах

пользователя, имя которого указано в команде.

Процесс оболочки для каждого зарегистрированного пользователя является

процессом-родителем всех процессов, которые выполняет пользователь.

Этот процесс обычно ожидает окончания всех порожденных процессов. Однако

имеется возможность указать процессу sh, чтобы он не ожидая окончания процесса-

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

в фоновом режиме(background).

Выполнение команды в фоновом режиме указывается символом &, который

помещается в конце командной строки:

команда &

При этом на экран выводится порядковый номер фонового процесса (job) и его

числовой идентификатор (job_ID).

$ find . –name .profile –print 2>/dev/null &

[ 1 ] 756

Обычно в фоновом режиме запускаются процессы, требующие большого времени

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

Когда процесс выполняется в фоновом режиме, необходимо предусмотреть

перенаправление его стандартных каналов вывода в файл; в противном случае он будет

выводить на экран сообщения в непредсказуемое время, мешая работе других команд.

Оболочка sh информирует об окончании фонового процесса, выводя сообщение,

содержащее имя команды и номер фонового процесса:

[ 1 ] + Done find &

Это сообщение не будет смешиваться с сообщениями текущих команд, т.к. оно

выводится только в тот момент, когда в командной строке появляется подсказка

оболочки (по умолчанию символ $).

Если необходимо, чтобы процесс, который требует очень большого времени,

выполнялся даже тогда, когда пользователю необходимо выйти из системы, его

необходимо запустить с помощью команды nohupв фоновом режиме:

nohupкоманда [аргументы] &

Эта команда перенаправляет весь вывод в файл nohup.out, если перенаправления

вывода не было сделано раньше.

Оболочка kshимеет возможность управлять задачами (заданиями), переводя их из

фонового режима (background) в режим переднего плана (foreground) и наоборот. Это

называется управлением заданиями (job control). Для этого процесс переводится в

приостановленное состояние (нажатием клавиш <Ctrl> z). Когда порожденный процесс

приостанавливается, на экран выводится сообщение

[ 1 ] + Stopped команда

Приостановленный процесс можно перевести в фоновый режим командой bgили

режим переднего плана командой fg:

bg [ job_ID … ]

fg [ job_ID … ]

Командой jobsможно вывести состояние всех выполняемых процессов-потомков.

Используя команду sleep, запустите несколько процессов:

sleep 60&

sleep 100&

sleep 30

Теперь нажмите (Ctrl>z). Обратите внимание на номер остановленного процесса и

появившуюся подсказку оболочки.

Просмотрите состояние порожденных процессов командой job.

Используйте команду bg для перевода процесса sleep 30 в фоновый режим.

Используйте команду fg для вывода процесса sleep 60 из фонового режима.

Что вы ожидаете увидеть командой job, когда завершится?

Сигналявляется способом уведомления о некотором происшедшем событии между

процессами или между ядром системы и процессами. Сигналы можно рассматривать, как

простейшую форму взаимодействия между процессами, хотя они больше напоминают

программные прерывания, при которых нарушается нормальное выполнение процесса.

Современные версии ОС Unix поддерживают до 32 различных сигналов. К генерации

сигналов могут привести различные ситуации:

Сигнал 1 (сигнал hangup).Ядро системы посылает такой сигнал дочерним

процессам текущего процесса shell, когда вы выходите из этого процесса shell.

Сигнал 2 (сигнал прерывания).Ядро отправляет процессу сигнал при нажатии

пользователем определенных клавиш или комбинации клавиш. Например, нажатие

клавиши <Del> (или <Ctrl> C) приводит к завершению текущего процесса.

Сигнал 3 (сигнал выхода).Нажатие комбинации клавиш <Ctrl> приводит к

завершению текущего процесса и записи его образа на диск с целью дальнейшего

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

сигнал 2. В этом случае может помочь сигнал 3. Процессы, работающие в фоновом

режиме, обычно не реагируют на сигналы 2 или 3. Для этих и других подобных

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

Другие сигналы могут быть посланы процессам в результате различных

обстоятельств. Например, сигнал 15приводит к завершению выполнения процесса,

получившего сигнал

Иногда процесс продолжает существовать и после посылки ему сигнала 15. В этом

случае применяется более жесткое средство – посылка процессу сигнала 9, поскольку

этот сигнал нельзя ни перехватить, ни игнорировать.

Как уже отмечалось выше, некоторые сигналы генерируются в результате нажатия

клавиш:

- нажатие клавиши <Del> приводит к генерации сигнала 2, который посылается

текущему процессу;

- нажатие комбинации клавиш <Ctrl> приводит к генерации сигнала 3.

Другие сигналы, например, сигналы, посылаемые ядром системы в результате

выполнения процессом недопустимой команды, обращения к несуществующему адресу

или выполнения операции деления на нуль, не могут генерироваться с клавиатуры.

Однако посылка любого сигнала процессу возможна с помощью команды kill:

kill[ -номер сигнала] [pid …]

Команда kill может послать любой сигнал, номер которого указан в качестве опции

команды. Если он не указан, по умолчанию посылается сигнал номер 15.

Сигнал посылается командой kill процессам, идентификаторы которых указаны в

качестве аргументов. С помощью команды kill сигнал может быть послан только

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

Для удаление процесса, например, find выполните команду:

find / -name core –print /dev/null 2>&1 &

С помощью команды ps определите идентификатор процесса (PID) find, затем

удалите его с помощью команды kill.

Интерпретатор командного языка

операционной системой. Shell считывает команды, которые вы вводите, и интерпретирует их как запросы на выполнение других программ, на доступ к файлу… обеспечение вывода. shell также является мощным языком программирования.

Выполнение, остановка и повторный запуск процессов

- как запустить команду в определенное время с помощью команд batch и at; - как получить информацию о состоянии процесса; - как завершить активный процесс;

– Конец работы –

Используемые теги: экономики, статистики, информатики0.054

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Экономики, статистики и информатики

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Краткий курс лекций по статистике Модуль 1. Теория статистики Глава 1. Статистика как наука и методы статистического исследования
Модуль Теория статистики... Глава Статистика как наука и методы статистического исследования... Цель ввести основные понятия статистики рассмотреть задачи статистики на современном...

Лекции по статистике Лекция . Предмет, метод и задачи статистики. Аналитическая статистика
Лекция Предмет метод и задачи статистики... Статистика это общественная наука которая присущими ей методами изучает... Общая теория статистики отрасль статистической науки о наиболее общих принципах правилах и законах цифрового...

Статистика как общественная наука. Предмет, метод и задачи статистики. Основные понятия, используемые статистикой.
Статистика как общественная наука... Предмет метод и задачи статистики... Основные понятия используемые статистикой...

Краткий курс лекций по статистике Модуль 1. Теория статистики Глава 1. Статистика как наука и методы статистического исследования
Модуль Теория статистики... Глава Статистика как наука и методы статистического исследования... Цель ввести основные понятия статистики рассмотреть задачи статистики на современном...

ЛЕКЦИЯ 1. 3 ПОНЯТИЕ ПРАВОВОЙ ИНФОРМАТИКИ И ЕЕ ПРЕДМЕТ. Правовая информатика как наука и учебная дисциплина. О месте правовой информатики в системе наук и правоведении. 14
ВВЕДЕНИЕ... ЛЕКЦИЯ... ПОНЯТИЕ ПРАВОВОЙ ИНФОРМАТИКИ И ЕЕ ПРЕДМЕТ Правовая информатика как наука и учебная дисциплина...

Краткий конспект лекций о курсу “Мировая экономика”, “Мировая экономика и международные отношения”, “Международная экономика”
по курсу Мировая экономика Мировая экономика и международные отношения Международная экономика для всех специальностей ЭФ... Тема Современное всемирное...

Лекции по курсу Информатика Лекция 1. Основные понятия и методы теории информатики и кодирования. Информатика как научная дисциплина. Понятие информации и информационных процессов
Лекция Основные понятия и методы теории информатики и кодирования... Информатика как научная дисциплина... Понятие информации и информационных процессов...

ЭКОНОМИКИ, СТАТИСТИКИ И ИНФОРМАТИКИ МЭСИ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ... МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ... ЭКОНОМИКИ СТАТИСТИКИ И ИНФОРМАТИКИ МЭСИ...

Предмет и метод статистики Предмет статистики 2. Основные понятия статистики
План... Предмет статистики... Основные понятия статистики Статистическая методология и организация статистики в РФ...

Програма самостійної роботи з дисципліни Статистика Значення і основні завдання статистики. Сучасна організація статистики в Україні
Рекомендована література Базова Закон України Про внесення змін до Закону України Про державну статистику Відомості Верховної ради України К...

0.035
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам