Лекции по Операционным Системам. Ввиде html
Вид материала | Лекции |
- Html динамический html, 177.06kb.
- Управление операционным риском в банковской деятельности, 76.24kb.
- Курс по операционным системам (на примере ос windows) Основан на учебном курсе Windows, 29.21kb.
- Практикума по операционным системам на основе ms windows, 75.74kb.
- Концепция www 5 Создание Web-страницы с помощью языка html 7 1 Язык html 7 Структура, 217.81kb.
- Программа для просмотра web-страниц, которая преобразует тэги html-документа в соответствующее, 47.68kb.
- Html, " onclick="return false">, 258.05kb.
- 1 Призначення html, 333.23kb.
- Реферат создание сайта на основе html, 60.66kb.
- Автоматически создает html версии документов при сканировании Интернета, 2049.64kb.
Лекции по Операционным Системам. В виде HTML.
1. Операционные системы
2. Стандартизация
3. Файловая система
4. Shell
5. Классификация команд
6. Перенные:
a. в Shell
b. окружения
7. Командные файлы
8. Команда TEST
9. IF
10. CASE
11. FOR
12. WHILE and UNTIL
a. WHILE b. UNTIL
13. sed awk lex yacc make
a. SED
b. awk (Aho, Weinberg, Kernigan)
c. LEX
d. YACC
e. MAKE
14. X-Window System
15. Internet протоколы
16. Архитектура UNIX.
17. Ядро
18. Подсистема управления файлами.
20. EXT2.
21. VFS. Виртуально-файловая система.
22. Буферный КЭШ.
23. Буфер.
24. Подсистема управления процессами
25. Процесс.
26. Контекст процесса.
27. Сохранение контекста.
28. Уровни и слои контекста
30. Переключение контекста.
31. Диспетчеризация процессов.
32. Работа в режиме реального времени.
33. Управление памятью.
34. Свопинг.
35. Подкачка по запросу (по обращению)
36. Управление вводом/ выводом.
37. Взаимодействие процессов
38. Именованные каналы
39. Элементы распределённых систем
1. Операционные системы
Место ОС в АСУ
АСУ состоит из:
- функциональных подсистем - решают задачи управления в рамках некоторых функций управления объектом.
- обслуживающих подсистем - предназначаются для обеспечения эффективной работы функциональных подсистем.
К обслуживающим системам относятся подсистемы:
- технического обеспечения
- информационного обеспечения
- программного обеспечения
- организационного обеспечения
- методического обеспечения
- юридического обеспечения
- экономико-математические методы.
Программное обеспечение
Можно выделить две основные части программного обеспечения:
- Программы АСУ: непосредственно программы, с которыми работает пользователь, которые осуществляют обработку информации, управление объектом и т.п.
- Обслуживающие программы: Позволяют наиболее эффективно работать программам АСУ.
Обслуживающие программы делятся на:
- проблемно-ориентированные
- с жесткой моделью
- с настраиваемой моделью
- универсальные ( ОС )
ОС называется комплекс программ, используемый для работы пользователя и ЭВМ при решении задач различной постановки и целей.
ОС включает:
- управляющую часть
- драйвера устройств
- программа первоначальной загрузки
- программа управления задачами
- программа управления заданиями
- программа управления данными
- супервизор
- библиотекарь
- диспетчер
- сервисную часть
- программы работы с файлами
- программы работы с устройствами
- трансляторы
Функции ОС:
- Загрузка и выполнение пользовательских программ
- Работа с периферийными устройствами
- Управление памятью
- Интерфейс пользователя
- Параллельные выполнения задач
- Взаимодействие задач
- Защита системных и пользовательских ресурсов
- Идентификация и аутентификация
Виды ОС:
1) Дисковые
СP/M (Control Process Monitor)
MS/DR DOS
- ОС Общего назначения
UNIX
WINDOWS NT/2000/XP/2003
- Виртуальные машины
VM WAPE
VAX/VMS-RT11
- Система реального времени
В данных системах реакция на прерывание должна производиться в темпе их появления.
- ОС с микроядром
В микроядро входит планировщик и средства взаимодействия с процессором.
- Средства кросс-разработки
Включает в себя 2 устройства:
1-е устройство компилирует
2-е устройство выполняет
Unix
За время, прошедшее с момента ее появления в 1969 году, система UNIX стала довольно популярной и получила распространение на машинах с различной мощностью обработки, от микропроцессоров до больших ЭВМ, обеспечивая на них общие условия выполнения программ. Система делится на две части. Одну часть составляют программы и сервисные функции, то, что делает операционную среду UNIX такой популярной; эта часть легко доступна пользователям, она включает такие программы, как командный процессор, обмен сообщениями, пакеты обработки текстов и системы обработки исходных текстов программ. Другая часть включает в себя собственно операционную систему, поддерживающую эти программы и функции.
Популярность и успех системы UNIX объяснялись несколькими причинами:
- Система написана на языке высокого уровня, благодаря чему ее легко читать, понимать, изменять и переносить на другие машины. Первый вариант системы на Си имел на 20-40 % больший объем и работал медленнее по сравнению с вариантом на ассемблере, однако преимущества использования языка высокого уровня намного перевешивают недостатки. - Наличие довольно простого пользовательского интерфейса, в котором имеется возможность предоставлять все необходимые пользователю услуги.
- Наличие элементарных средств, позволяющих создавать сложные программы из более простых.
- Наличие иерархической файловой системы, легкой в сопровождении и эффективной в работе.
- Обеспечение согласования форматов в файлах, работа с последовательным потоком байтов, благодаря чему облегчается чтение прикладных программ.
- Наличие простого, последовательного интерфейса с периферийными устройствами.
- Система является многопользовательской, многозадачной; каждый пользователь может одновременно выполнять несколько процессов.
- Архитектура машины скрыта от пользователя, благодаря этому облегчен процесс написания программ, работающих на различных конфигурациях аппаратных средств.
Простота и последовательность вообще отличают систему UNIX и объясняют большинство из вышеприведенных доводов в ее пользу. Хотя операционная система и большинство команд написаны на Си, система UNIX поддерживает ряд других языков, таких как Фортран, Бэйсик, Паскаль, Ада, Кобол, Лисп и Пролог. Система UNIX может поддерживать любой язык программирования, для которого имеется компилятор или интерпретатор, и обеспечивать системный интерфейс, устанавливающий соответствие между пользовательскими запросами к операционной системе и набором запросов, принятых в UNIX.
2. Стандартизация
Стандартизация применима для:
1. Переноса приложений на широкий диапазон систем.
2. Совместной работы приложений локальной или глобальной сети.
3. Для взаимодействия с пользователем в стиле, облегчающим ему переход от одной системы к другой.
Для обеспечения этого существуют открытые спецификации на интерфейс.
Термин ‘спецификация открыта’ означает, что она общедоступна и находится под контролем общественности.
Открытая система, которой является UNIX, должна поддерживать открытые спецификации.
Открытая спецификация не зависит от программного и аппаратного обеспечения.
3. Файловая система
Файловая система UNIX в частности характеризуется:
- иерархической структурой
- согласованной обработкой массивов данных
- возможностью создания и удаления файлов
- динамическим расширением файлов
- защитой информации в файлах
- трактовкой периферийных устройств (таких как терминалы и ленточные
устройства) как файлов.
Файловая система организована в виде дерева с одной исходной вершиной, которая называется корнем (записывается: '/'); каждая вершина в древовидной структуре файловой системы, кроме листьев, является каталогом файлов, а файлы, соответствующие дочерним
вершинам, являются либо каталогами, либо обычными файлами, либо файлами устройств. Имени файла предшествует указание пути поиска, который описывает место расположения файла в иерархической структуре файловой системы. Имя пути поиска состоит из компонент, разделенных между собой наклонной чертой (/); каждая компонента представляет собой набор символов, составляющих имя вершины (файла), которое является уникальным для каталога (предыдущей компоненты), в котором оно содержится. Полное имя пути поиска начинается с указания наклонной черты и идентифицирует файл (вершину), поиск которого ведется от корневой вершины дерева файловой системы с обходом тех ветвей дерева файлов, которые соответствуют именам отдельных компонент.
Имя пути поиска необязательно должно начинаться с корня, в нем следует указывать маршрут относительно текущего для выполняемого процесса каталога, при этом предыдущие символы 'наклонная черта' в имени пути опускаются. Так, например, если мы находимся в каталоге
'/dev', то путь 'tty01' указывает файл, полное имя пути поиска для
которого '/dev/tty01'.
Корневой каталог имеет вид:
/ - корневой каталог
|
|-bin Двоичные коды наиболее важных команд
|-boot Статические файлы загрузчика boot
|-dev Файлы устройств
|-etc Файлы настройки конфигурации системы
|-home Домашние каталоги пользователей
|-lib Разделяемые библиотеки
|-mnt Точка монтирования временно подключаемых систем
|-proc Псевдо-файловая система с информацией о процессах
|-root Домашний каталог (пользователя) root
|-sbin Наиболее важные системные двоичные коды
|-tmp Временные файлы
|-usr Вторая главная иерархия
+-var Переменные данные
Каждый из этих, а также расположенных на других уровнях, каталогов имеет строго определенное назначение, что обеспечивает удобство работы с файловой системой.
Программы, выполняемые под управлением системы UNIX, не содержат никакой информации относительно внутреннего формата, в котором ядро хранит файлы данных, данные в программах представляются как бесформатный поток байтов. Программы могут интерпретировать поток байтов по своему желанию, при этом любая интерпретация никак не будет связана с фактическим способом хранения данных в операционной системе. Так, синтаксические правила, определяющие задание метода доступа к данным в файле, устанавливаются системой и являются едиными для всех программ, однако семантика данных определяется конкретной программой. Например, программа форматирования текста troff ищет в конце каждой строки текста символы перехода на новую строку, а программа учета системных ресурсов acctcom работает с записями фиксированной длины. Обе программы пользуются одними и теми же системными средствами для осуществления доступа к данным в файле как к потоку байтов, и внутри себя преобразуют этот поток по соответствующему формату. Если любая из программ обнаружит, что формат данных неверен, она принимает соответствующие меры. Каталоги похожи на обычные файлы в одном отношении; система представляет информацию в каталоге набором байтов, но эта информация включает в себя имена файлов в каталоге в объявленном формате для того, чтобы операционная система и программы, такие как ls (выводит список имен и атрибутов файлов), могли их обнаружить. Права доступа к файлу регулируются установкой специальных битов разрешения доступа, связанных с файлом. Устанавливая биты разрешения доступа, можно независимо управлять выдачей разрешений на чтение, запись и выполнение для трех категорий пользователей: владельца файла, группового пользователя и прочих. Пользователи могут создавать файлы, если разрешен доступ к каталогу. Вновь созданные файлы становятся листьями в древовидной структуре файловой системы. Для пользователя система UNIX трактует устройства так, как если бы они были файлами. Устройства, для которых назначены специальные файлы устройств, становятся вершинами в структуре файловой системы. Обращение программ к устройствам имеет тот же самый синтаксис, что и обращение к обычным файлам; семантика операций чтения и записи по отношению к устройствам в большой степени совпадает с семантикой операций чтения и записи обычных файлов. Способ защиты устройств совпадает со способом защиты обычных файлов: путем соответствующей установки битов разрешения доступа к ним (файлам). Поскольку имена устройств выглядят так же, как и имена обычных файлов, и поскольку над устройствами и над обычными файлами выполняются одни и те же операции, большинству программ нет необходимости различать внутри себя типы обрабатываемых файлов.
4. Shell
shell - это одна из многих команд UNIX. То есть в набор команд оболочки (интерпретатора) 'shell' входит команда 'sh' - вызов интерпретатора 'shell'. Первый 'shell' вызывается автоматически при входе в систему и выдает на экран промтер. После этого можно вызывать на выполнение любые команды, в том числе и снова сам 'shell', который создаст новую оболочку внутри прежней.
Shell обрабатывает команды трех типов:
- Во-первых, в качестве имени команды может быть указано имя исполняемого файла в объектном коде, полученного в результате компиляции исходного текста программы (например, программы на языке Си).
- Во-вторых, именем команды может быть имя командного файла, содержащего набор командных строк, обрабатываемых shell'ом.
- В-третьих, команда может быть внутренней командой языка shell (в отличие от исполняемого файла). Наличие внутренних команд делает shell языком программирования в дополнение к функциям командного процессора; командный язык shell включает команды организации циклов (for-in-do-done и while-do-done), команды выполнения по условиям (if-then-else-fi), оператор выбора, команду изменения текущего для процесса каталога (cd) и некоторые другие. Синтаксис shell'а допускает сравнение с образцом и обработку параметров. Пользователям, запускающим команды, нет необходимости знать, какого типа эти команды.
Командный процессор shell ищет имена команд в указанном наборе каталогов, который можно изменить по желанию пользователя, вызвав shell. Shell обычно исполняет команду синхронно, с ожиданием завершения выполнения команды прежде, чем считать следующую командную строку. Тем не менее, допускается и асинхронное исполнение, когда очередная командная строка считывается и исполняется, не дожидаясь завершения выполнения предыдущей команды. О командах, выполняемых асинхронно, говорят, что они выполняются на фоне других команд.
Простейшие средства Shell :
- ; - последовательное выполнение команд
пр.:sleep 20 ; reboot
- & - асинхронное (фоновое) выполнение предшествующей команды
пр.:cc pr.c &
- && - выполнение последующей команды при условии нормального
завершения предыдущей
пр.:mkdir sun && rmdir sun
- || - выполнение последующей команды при условии ненормального
завершения предыдущей
пр.: cd sun || mkdir sun
- {} – для группировки команд в блок
- () – кроме выполнения функции группировки, выполняют и функцию вызова нового экземпляра интерпретатора shell
- . – для выполнения программы из файла в текущем Shell–е
Стандартный вход и выход. Перенаправление.
'stdin' – стандартный ввод осуществляется с клавиатуры терминала
'stdout' – стандартный вывод направлен на экран терминала
'stderr' – стандартный файл диагностических и отладочных обобщений
Работа с ними осуществляется как с файлами.
stdin 0
stdout 1
stderr 2
Эти файлы можно переопределять регулярными файлами.
Пользователь имеет удобные средства перенаправления ввода и вывода на другие файлы (устройства). Символы '>' и '>>' обозначают перенаправление вывода.
Пр.:команда > f2
В этом случае f2 создастся. Если он существовал до этого, то он обнулится.
Для того, чтобы файл не обнулялся нужно использовать:
Пр.:команда >> f2
Символы '<' и '<<' обозначают перенаправление ввода.
Пр.:команда < f1
Перенаправление вывода команды в строчку осуществляется с помощью:
Пр.:\ команда \
Например, cd \ pwd \
Символ '|' используется для организации конвеера между командами. Это обозначает, что стандартный выход одной направляется на стандатный вход другой.
Пр.: dir | more
dir выдаёт файлы, а с помощью more их построчно выводит.
Поскольку shell является пользовательской программой и не входит в состав ядра операционной системы, его легко модифицировать и помещать в конкретные условия эксплуатации.
5. Классификация команд
- команды для работы с файловой системой
- команды для работы с текстовыми файлами
- тестирующие команды
Для работы с файловой системой используются команды:
сd смена деректории
pwd выдать текущую директорию
mkdir создать директорию
cp копирование файла
mv перенос(переименование) файла
rm удаление файла
rmdir удалить директорию
rm –r удаление всего, что указано
ls выдать содержимое директории, по умолчанию выдаётся содержимое текущего каталога, но каталог можно и задавать
ls –R / выдать содержимое диска
-l выдать файлы в длинном формате
-a выдача всех файлов, включая скрытые (т.е. начинающиеся с точки)
-cd переход в домашний каталог пользователя
-t сортировка по времени создания
-r соритровка в обратном порядке
chmod изменение права доступа к файлу или директории
find поиск файла
Команды для работы с текстовыми файлами:
cat выдать файл на стандартный выход
more выдать постранично
wc подсчитать количество слов, букв, строк
- с символы
- w слова
- l строки
grep поиск строчки в файле
vi экранный редактор
ed строчный редактор
nroff форматирование текста
diff сравнить текстовые файлы
man выдача помощи по командам
Команды тестирующие и работы с переменными:
echo выдать строку на экран
date выдать текущую дату
cal календарь
expr вычислить выраженние
export сделать переменную внешней
set выдать переменные среды
eval выполнить аргумент
test проверяет - удовлетворяет ли аргумент(ы) условию
file выдаёт тип файла
type показывает где находится исполняемый файл
who кто находится в системе
ps показывает список процессов
Еще команды можно разделить на внешние и встроенные. К встроенным относятся: echo, test, set, cd; но в общем случае зависит от реализации.
Шаблоны
В команде cat можно задавать несколько аргументов:
cat f1 f2 f3
Шаблон — это средство, которое позволяет задавать несколько имён файлов по определённому образцу.
Шаблоны бывают следующих видов:
* сколько угодно символов
? один символ
[] один символ из заключённого в них набора
{ < строка 1 >, < строка 2 >, ...} подставляет строки
Чтобы задать структуру cat f1 f2 f3, нужно воспользоваться cat f[1-3]
Если диапазон задать наоборот, например [f-b], то выдастся всё кроме указанных.
cat f* подставляются все файлы в текущем каталоге, начинающиеся на букву f
Когда шаблон задать сложно, то используются {}. Например,
cp / tmp / {f1, abpa}
Это интерпретируется так :
cp / tmp / f1 / tmp / abpa
echo {1,2,3,4,5,6}{1,2,3,4,5,6,7}{1,2,3,4,5,6,7,8,9,10}{1,2,3}
получится Декартово произведение.
6. Переменные:
a. в Shell
Имя shell-переменной - это начинающаяся с буквы последовательность букв, цифр и подчеркиваний. Значение shell-переменной - строка символов.
В shell всего два типа данных: строка символов и текстовый файл.
При обращении к shell-переменной необходимо перед именем ставить символ '$'. Так команды
var_2='ОС UNIX'
echo $var_2
echo var_2