Лекции по Операционным Системам. Ввиде html

Вид материалаЛекции

Содержание


Программное обеспечение
Ms/dr dos
Стандартный вход и выход. Перенаправление.
Команды для работы с текстовыми файлами
Команды тестирующие и работы с переменными
Так команды
И еще один пример. Фрагмент командного файла
Стандартные переменные
Условия проверки файлов
Условия проверки строк
Условия сравнения целых чисел
Сложные условия
Физический уровень
Сетевой уровень
Транспортный уровень
Уровень представления
Прикладной уровень
Схема взаимодействия между Интернет протоколами
Internet информация
Программа копирования файлов.
...
Полное содержание
Подобный материал:
  1   2   3   4   5

Лекции по Операционным Системам. В виде 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. Загрузка и выполнение пользовательских программ
  2. Работа с периферийными устройствами
  3. Управление памятью
  4. Интерфейс пользователя
  5. Параллельные выполнения задач
  6. Взаимодействие задач
  7. Защита системных и пользовательских ресурсов
  8. Идентификация и аутентификация

Виды ОС:


1) Дисковые

СP/M (Control Process Monitor)

MS/DR DOS

  1. ОС Общего назначения

UNIX

WINDOWS NT/2000/XP/2003

  1. Виртуальные машины

VM WAPE

VAX/VMS-RT11

  1. Система реального времени

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

  1. ОС с микроядром

В микроядро входит планировщик и средства взаимодействия с процессором.

  1. Средства кросс-разработки

Включает в себя 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