Оглавление
Введение. 2
Основы теории операционных систем.. 3
Общие сведения об операционных системах. 3
Организация диалога пользователя. 5
Архитектура операционной системы.. 8
Машино-независимые свойства операционных систем.. 13
Файловая система ПК.. 13
Работа с файлами и каталогами средствами командной строки Windows. 17
Процессы.. 19
Защищенность и отказоустойчивость ОС.. 23
Распределение ресурсов ПК.. 26
Управление процессами в интерактивных ОС.. 31
Организация ввода – вывода. 37
Распределение ресурсов ПК.. 41
Управление памятью.. 45
Кэширование данных. 51
Средства поддержки сегментации памяти. 57
Преобразование виртуального адреса в физический адрес. 59
Операционная система Windows. 61
Архитектура Windows XP. 62
Технологические принципы ОС Windows. 65
Физическая организация данных NTFS. 67
Архивирование данных. 73
Компьютерные вирусы.. 75
Реестр Windows XP. 78
Операционная система Linux. 87
Основные понятия ОС LINUX.. 87
Файловая система ОС LINUX.. 90
Процессы.. 93
Основные команды ОС LINUX.. 96
Архивирование и сжатие файлов. 100
SHELL – сценарии. 103
Архитектура сетевой операционной системы.. 107
Введение
Курс «Операционные системы»изучается студентами 2-го курса колледжа, обучающихся по специальности «Программирование в компьютерных системах» и «Информационная безопасность автоматизированных систем». Изучение курса завершается экзаменом в IV семестре. Курс состоит из 122 учебных часов, из которых теория составляет 70 часа, практические и лабораторные работы – 50 часов.
Курс состоит их трех разделов: «Основы теории операционных систем», «Работа в операционных системах и средах»и«Сетевые операционные системы».
Раздел «Основы теории операционных систем»включает темы Общие сведения об ОС, Интерфейс пользователя, Файловая система компьютера, Обработка прерываний, планирование процессов, Распределение ресурсов ПК и Управление памятью. Изучение раздела заканчивается контрольной работой.
Раздел «Работа в операционных системах и средах»включает две темы «Операционная система Windows» и «Операционная система «Linux».
Раздел «Сетевые операционные системы» включает темы Основы построения сетевых ОС и Администрирование локальных сетей.
Аттестация знаний студентов проводится каждый месяц, в виде самостоятельной работы или ответа. Во время выполнения лабораторных работ следует составить отчет, который предоставляется преподавателю. Во время изучения курса студент должен подготовить реферат из предложенных тем.
Основы теории операционных систем
Общие сведения об операционных системах
Современный компьютер или современная компьютерная система состоит из аппаратного обеспечения и программного обеспечения.
Программное обеспечение состоит их двух больших частей:
- Системного программного обеспечения;
- Прикладного программного обеспечения;
Операционная система компьютера представляет собой комплекс взаимосвязанных программ, которые предназначены для организации диалога пользователя с компьютером и организации работы самого компьютера. Организация всего вычислительного процесса означает рациональное управление ресурсами компьютера в зависимости от некоторого критерия. Управление ресурсами компьютера включает:
- Управление оперативной памятью;
- Управление файловой системой;
- Управление внешними устройствами;
- Управление приложениями, которые выполняются в данный момент времени;
- Защита данных;
Операционная система, в которую включены средства создания приложений, для данной ОC называется операционной средой. Пример Windows, Unix.
По способу организации вычислительного процесса ОС делятся на два больших класса:
- Однопрограммные (однозадачные ОС) – т.е. в оперативной памяти может находиться только одна программа с которой работает процессор;
- Многопрограммные (многозадачные) – т.е. в ОП может находиться одновременно несколько программ, каждая из которых попеременно выполняется на одном процессоре - мультипрограммирование.
История развития ОС – насчитывает около 50 лет
Первый цифровой компьютер – «аналитическая машина» была создана в середине 19 века.
Первые вычислительные машины, появившиеся в 40 – х годах 20 века, работали без ОС и все задачи организации вычислительного процесса решались вручную программистом с пульта управления.
В середине 50 - х годов появились системы пакетной обработки, которые предназначались для управления вычислительным процессом, был разработан формализованный язык управления заданиями. Составлялся пакет заданий, в котором указывалось какие действия и в какой последовательности необходимо выполнить. Для организации ввода – вывода использовались перфокарты и перфоленты, которые вводились в систему по мере завершения программы.
1965 – 1975 годы - IBM / 360 – созданы ОС, в которых реализованы практически все функции современных ОС. Реализовано мультипрограммирование – способ организации вычислительного процесса, при котором в памяти компьютера находилось одновременно несколько программ, попеременно выполняющихся на одном процессоре.
Мультипрограммирование реализовано в двух вариантах:
- Системы пакетной обработки
- Системы разделения времени
Мультипрограммные системы пакетной обработки – основная цель максимальная загрузка аппаратуры компьютера. Пока одна программа выполняла операцию ввода – вывода, процессор переключался на выполнение другой программы.
Системы разделения времени (многотерминальные системы) – каждый пользователь работает за своим терминалом, который подключен к одной машине, каждой задаче периодически выделялась доля процессорного времени.
Кроме того, в состав ОС были включены средства, которые позволяли автоматически выбирать следующее задание из пакета, загружать его в освободившиеся место в ОП и запускать его. Пакет заданий загружался на жесткий диск, и можно было добавлять задание по мере поступления. Этот технический прием называется «подкачкой» данных. Был организован спулинг внешних устройств, то есть несколько внешних устройств могли одновременно вводить или выводить данные. Спулинг – совместная периферийная операция в интерактивном режиме (Simultaneous Peripheral Operation On Line).
Кроме больших машин в это время появились мини – компьютеры – PDP / 9, PDP / 11. Для них была разработана ОС UNIX - LINUX.
В начале 70 – х годов появились первые сетевые операционные системы, которые могли организовать распределенное хранение и обработку данных между несколькими компьютерами, связанных между собой.
В начале 80 – х годов появился первый персональный компьютер и ОС MS DOS.
С 90 – х годов все ОС стали сетевыми, то есть выполняет функции обычной ОС и функции взаимодействия по сети с ОС других компьютеров.
На современном этапе развития ОС решаются задачи обеспечения безопасности информации и повышение удобства работы человека с компьютером
Развитие вычислительной техники привело к созданию большого количества операционных систем, различных по своему назначению и возможностям.
По своему функциональному назначению ОС делятся на несколько типов:
Операционные системы мэйнфреймов (больших машин). Мэйнфрейм в настоящее время применяются на крупных вычислительных центров для решения, как правило, сложных вычислительных задач, или обработки большого количества запросов. Например для управления космическими объектами, составление прогноза погоды, обработка данных в банках или отчетов магазинов крупных корпораций. Отличаются от ПК возможностями ввода – вывода, могут иметь десятки или сотни дисков, содержащих терабайты данных. Обработка данных ведется в пакетном режиме без участия пользователя. Начинают использоваться в виде мощных Web – серверов.
Серверные операционные системы – обеспечение работы компьютерных сетей
Операционные системы для персональных компьютеров – ориентированы на широкий класс пользователей, имеют удобный интерфейс – Windows, UNIX, Macintosh.
Многопроцессорные операционные системы. Для увеличения мощности компьютера используется несколько процессоров в одной системе, вычислительный процесс распараллеливается между несколькими процессорами. Требуется специальное программное обеспечение, которое способно разделить задачу на части, обрабатывать части параллельно на отдельном процессоре, затем получить единый результат. Как правило, представляют собой серверную операционную систему со специальными возможностями связи.
Операционные системы реального времени используются для управления технологическими процессами (станки с ЧПУ), движущимися объектами (спутники, роботы). Главный критерий работы – время, ОС должна дать ответ за определенное время или в определенном диапазоне. ОС работает по заранее заданному алгоритму (программе).
Встроенные операционные системы работают на карманных компьютерах (электронные справочники, электронные записные книжки) или технических устройствах, не считающихся компьютерами, например телевизоры, микроволновые печки, мобильные телефоны и т.д. Имеют ограниченный набор функций, ограничения на размер памяти, мощности. Пример Windows CE (Consumer Electronics – бытовая техника)
Операционные системы для смарт-карт – самые маленькие примитивные ОС. Имеют жесткие ограничения по мощности и памяти. Способны управлять, как правило, одной операцией – например электронным платежом. Некоторые смарт - карты могут выполнять апплеты Java - маленькие программы. Из-за необходимости управлять несколькими апплетами возникает многозадачность, необходимость планирования и защиты.
Операционные системы для персональных компьютеров ориентированы на пользователя и предоставляют пользователю возможность работы в интерактивном режиме, как правило, с несколькими приложениями.
Остальные ОС являются специализированными, работают без участия пользователя, либо с пакетом программ, либо по заранее заданной программе.
Машино-независимые свойства операционных систем
Cd ..
Просмотр оглавления каталога
DIR. - вывод оглавление текущего каталога;
DIR / Р - вывод оглавления по страницам
DIR. / W - вывод оглавления в широком формате
Удаление пустого каталога
RD [ дисковод : ] путь Пример. с : > rd trk
Переименование каталога
MOVE имя - каталога имя- нового каталога
Пример. С : > move trl tr2
Работа с файлами
Создать текстовый файл
COPY CON имя-файла
Пример
C:>COPY CON Al.TXT
Вариант 1
Процесс А | Ресурс1 | Ресурс 2 | ||||
Процесс В | Ресурс 2 | Ресурс 1 | ||||
Независимое использование ресурсов двумя процессами, конфликтов не возникает
Вариант 2
Процесс А | Ресурс1 | Ресурс 2 | ||||
Процесс В | Ресурс 1 | Ресурс 2 | ||||
Ожидание ресурса 1 пр. В | Ожидание ресурса 2 пр. В |
К ресурсам 1 и 2 образовалась очередь, конфликтов нет
Вариант 3
Процесс А | Ресурс1 | Ожидание ресурса 2 | |||
Процесс В | Ресурс 2 | Ожидание ресурса 1 | |||
Ресурс 1 занят процессом А и требуется процессу В, ресурс 2 занят процессом В и требуется ресурсу А. Возникла тупиковая ситуация (взаимоблокировка) – тупик
Группа процессов находиться в тупике, если каждый процесс из группы ожидает события, которое может вызвать только другой процесс из этой же группы.
Вектор существующих ресурсов
A = { a1; a2 ; ….. ai ….. an }, где
ai - количество экземпляров одного ресурса
Поддерживать несколько файловых систем
7. Вести системную информацию о состоянии и распределение устройств:
- Таблица состояние устройств;
- Таблица распределения устройств;
- Таблица запросов приложений на устройства
Вариант 1
Процесс А | Ресурс1 | Ресурс 2 | ||||
Процесс В | Ресурс 2 | Ресурс 1 | ||||
Независимое использование ресурсов двумя процессами, конфликтов не возникает
Вариант 2
Процесс А | Ресурс1 | Ресурс 2 | ||||
Процесс В | Ресурс 1 | Ресурс 2 | ||||
Ожидание ресурса 1 пр. В | Ожидание ресурса 2 пр. В |
К ресурсам 1 и 2 образовалась очередь, конфликтов нет
Вариант 3
Процесс А | Ресурс1 | Ожидание ресурса 2 | |||
Процесс В | Ресурс 2 | Ожидание ресурса 1 | |||
Ресурс 1 занят процессом А и требуется процессу В, ресурс 2 занят процессом В и требуется ресурсу А. Возникла тупиковая ситуация (взаимоблокировка) – тупик
Группа процессов находиться в тупике, если каждый процесс из группы ожидает события, которое может вызвать только другой процесс из этой же группы.
Вектор существующих ресурсов
A = { a1; a2 ; ….. ai ….. an }, где
ai - количество экземпляров одного ресурса
Операционная система Windows
Операционная система Windows наиболее распространенная ОС на сегодняшний день для персональных компьютеров. Семейство ОС включает различные версии от Windows 1.0 до Windows ХР. Windows является операционной средой – в состав операционной системы входят средства разработки приложений для данной ОС (программирование под Windows).
Уровень Windows API
16-разрядный уровень API соответствует уровню API Windows 3.1. Файлы хранятся в папках System и System32. Динамические библиотеки для работы с окнами, как правило, имеют два варианта. Подуровень Thunk предназначен для поддержки 16-разрядных приложений, преобразует 16-разрядные запросы и данные в 32-разрядные и обратно.
Классификация компьютерных вирусов
По воздействию:
- Безвредные вирусы – увеличивают длину файла, изменяют дату создания, перегружают систему, создают очередь к устройствам;
- Малоопасные – выдают неожиданные сообщения, звуковые или экранные эффекты;
- Разрушительные – портят данные на диске, как правило, уничтожают системную область на диске;
По способу заражения:
Вирусы – компаньоны не заражают программу, а запускаются вместо другой программы. В ОС MS DOS пользователь вводит команду prog
ОС ищет файл prog.com, если такого файла нет, то ищется файл prog.exe. То же самое происходит при выборе пункта ВЫПОЛНИТЬ меню ПУСК. Сегодня программы имеют расширение .exe, .com используется редко. Поэтому, если известно, что определенная программа часто запускается из командной строки, ее можно заменить вирусом. Также вирус может заменить ярлык, так чтобы сначала запускался вирус, а затем программа.
Файловые вирусы, то есть вирусы, которые заражают исполнимые файлы. Такие вирусы приписывают себя к исполнимому файлу. С этой целью вирус просматривает папку, находит исполнимый файл, открывает его, и приписывает себя к коду. Можно выбирать не первый файл, а по датчику случайных чисел, после приписывания не изменять длину и дату модификации файла. (Перезаписывающий, паразитические вирусы).
Исполнимый файл состоит из нескольких сегментов (кода и данных). Длина сегмента всегда кратна 512 байт, если сегмент занят не полностью, то он дополняется нулями. Вирус может записывать себя в эти пустые места, при этом длина файла увеличиваться не будет. Обнаружение такого вируса более сложно. (полостные вирусы).
Вирусы – компаньоны и файловые вирусы после выполнения своей работы, передают управление основной программе, и после завершения основной программы выгружаются из памяти.
Резидентные вирусы после загрузке в ОП остаются там навсегда, как правило в области векторов прерываний. Очень умные вирусы могут изменять карту памяти, и объявлять некоторую область занятой. Резидентный вирус перехватывает один из векторов прерывания, например вектор прерывания системного вызова, сохраняет номер прерывания в своей переменной, запускает свою процедуру, затем передает управление настоящему системному вызову.
Загрузочные вирусы, поражают загрузочный сектор диска или дискеты. При включении компьютера загрузка ОС проводиться с загрузочного сектора диска. Загрузочные вирусы переписывают загрузочный сектор в безопасное место на диске, копируют себя в ОП, то становятся резидентными, а затем возвращают загрузочный сектор на место и загружают ОС.
Вирусы драйверов устройств. В Windows и UNIX драйвер представляет собой исполнимый файл, такой файл может быть заражен файловым вирусом. Драйвер работает в режиме ядра, что позволяет вирусу перехватывать вектор прерываний системных вызовов.
Макро вирусы. Такие приложения, как Word и Excel позволяют создавать макросы, то есть последовательность команд, которая выполняется при запуске макроса. Эти макросы могут содержать циклы для открытия документов, листов рабочей книги и т.д. Создавать такие макросы достаточно просто.
Вирусы, заражающие исходные тексты программ. Эти вирусы вставляют в текст программы вызов некоторой процедуры, которая соответствует вирусу.
Например
#include <virus.h> run_virus ( );
при вызове программы произойдет обращение к вирусу, который, например, будет искать другие тесты программ, заражать их и выполнять свои действия.
Информация реестра о настройках пользователя
Настройки пользователя, такие как настройки рабочего стола, вид информации в папке и т.д., выполняются с помощью окна диалога «Свойства элемента» или панели управления и записываются в реестр. Настройки хранятся в разных разделах реестра, но большинство в разделе HKEY_CURRENT_USER.
Раскладка клавиатуры. Подраздел Keyboard Layout
Подраздел Preload содержит параметры, значения которых являются значениями языка. Их имена формируются арифметической последовательностью 1, 2, 3 и т.д. Эти параметры определяют последовательность загрузки языков при включении компьютера. Если параметр 1 имеет значение 0000409, то первым будет загружаться английский язык.
Подраздел Toggle способ переключения между раскладками языка.
1 – переключение Alt + Shift
2 – Ctrl + Shift
3 – переключения нет
Подраздел Substitutes определяет раскладку по умолчанию
Операционная система Linux
Основные понятия ОС LINUX
ОС LINUX сетевая операционная система. Компьютеры, работающие под управлением ОС LINUX, выполняют одну из двух функций либо сервера, либо рабочий станции. Основное условие компьютеры должны работать непрерывно. На рабочей станции могут одновременно работать несколько пользователей, подключенных по сети, любая станция является почтовым сервером, т.е. может принимать и передавать сообщения электронной почты.
Пользователи делятся на две больших категории – обычный пользователь и системный администратор. Права обычного пользователя ограничены, системный администратор имеет доступ к системным ресурсам и управляет пользователями, зарегистрированными в системе.
Процесс – основное понятие любой ОС, возникает при запуске программы на выполнение. ОС LINUX является ОС с разделением времени, т. е. каждому процессу выделяется квант времени на использование процессорного времени.
Файл – однотипные данные, которые имеют имя, хранятся в памяти. Имя файла имеет произвольную длину, буквы верхнего и нижнего регистра в имени файла различаются.
Сеанс работы – представляет собой последовательность команд, которые выполнил пользователь от момента входа в сеть до момента выхода из сети.
При включении терминала активизируется процесс Getty, сервер терминального доступа, который запускает программу Login, запрашивается регистрационное имя и пароль пользователя, происходит проверка регистрации пользователя и его пароля, если все нормально – то запускается специальная программа – интерпретатор команд. Завершение работы обеспечивается командой Logout.
GETTY LOGIN ИК сеанс работы пользователя LOGOUT
Включение имя SHELL команды пользователя выход из
Терминала пароль системы
Интерпретатор команд (ИК) – специальная программа, часть ОС, которая обеспечивает организацию диалога пользователя, а именно:
- считывание данных команды, введенной пользователем;
- проверку правильности ввода команды и выдачу сообщения об ошибке;
- выполнение команды.
ИК запускает при входе пользователя в систему и далее происходит обращение только с этим ИК. Разработано несколько ИК : SHELL, BASH и др. При регистрации пользователя в системе администратор определяет какой ИК будет запускаться при входе данного пользователя в систему.
Интерпретатор команд предоставляет пользователю возможности:
- ввода и редактирования команды;
- обработку метасимволов (подстановочных символов - ? * [ ] );
- исполнение команды в интерактивном или фоновом режиме и контроль за ее выполнением;
- перенаправления ввода – вывода, т. е. возможность ввода данных из файла и вывода данных в файл;
- передачу данных на вход другой программы без промежуточной записи на диск – создание конвейера команд;
- создание и выполнение сценариев (командных файлов ).
Команды и программы
В ОС LINUX любой исполнимый файл является командой ОС. Признаком исполнимого файла является установка для него специального атрибута «исполнимый файл», который разрешает его исполнение в качестве программы. Для запуска следует указать имя программы. Команды:
Внутренние (встроенные) – код находиться в ИК;
Внешние – исполнимые файлы, расположены на диске.
Если пользователь вводит имя команды, которая является встроенной, то команда немедленно исполняется. Если имя команда не совпадает, т. е. команда является внешней, то ИК выполняет поиск исполнимого файла команды. Каталоги, в которых оболочка ищет команду, перечисляются в переменной окружения PATH. Программа должна находиться в одном из этих каталогов, иначе будет выведено сообщение, что команда не найдена. Значение переменной PATH, устанавливается при входе в систему.
Основные команды ОС LINUX
Команды получения информации о файловой системе.
Вывод полного имени текущего каталога
# pwd
ключи
- l - в пути доступа указывается имя символической ссылки данного каталога;
- p -показывает имя реального каталога, к которому установлена ссылка
Информация о дисковом пространстве
# df - показывает объем дискового пространства – полный, занятый, доступный пользователю.
Информация о размере дискового пространства занятого файлами
# du [ ключи ] [ файлы ] - размер дискового пространства, занятого файлом файлами, имена которых указаны, можно использовать метасимволы
Работа с каталогами
Создание каталога
# mkdir [ ключи ] < имя_каталога >
Пример
# mkdir p240
# mkdir - p d1 / d2 / d3 – будет создано три вложенных каталога
Перемещение между каталогами
# cd < имя_каталога > - войти в каталог
# cd .. – подняться на уровень вверх
Удаление пустого каталога
# rmdir < имя_каталога >
Пример # mrdir p240 – каталог будет удален, если он пуст
Работа с файлами
Создание текстового файла
# cat > < имя_файла >
текст файла
ctrl + d
Просмотр текстового файла
# more < имя_файла > - будет выведен текст файла
Команды работы с текстовыми файлами
Объединение текстовых файлов
# cat < имя_файла1 > < имя_файла2 > …… > < имя_файла_результата >
Пример # cat a1.tx a2.tx > a12.tx | more a12.tx
Определение числа строк, слов, символов
# wc [ ключи ] < имя_файла >
ключи
- l - определение строк;
- w – определение слов;
- c - определение символов
Пример # wc - l w c f1.tx
Сравнение файлов и каталогов
# diff [ ключи ] < имя_файла1 > < имя_файла2 >
Если сравниваются двоичные файлы, то выдается только сообщение о несовпадении.
Если текстовые файлы, то будут выведены номера строк и символов, в которых найдено не совпадение
Если сравниваются каталоги, то имена файлов в каталогах сортируются по алфавиту, затем сравниваются файлы.
Ключ - r позволяет сравнивать подкаталоги.
Пример
# diff a1.dt a2.dt
Построчное сравнение файлов
# comm. < имя_файла1 > < имя_файла2 >
если найдено не совпадение, то выводятся строки первого файла, затем второго.
Пример
# comm. A1.dt a2.dt
на экране
a1.dt
asdfdg hjkkl
a2.dt
treuyuyuy uy
efdfgf
Поиск файлов
Для поиска файлов используется команда find, которая просматривает файлы в каталоге, указанному в командной строке, и удовлетворяющие заданному логическому условию.
# find [ путь ] [ логическое_выражение ]
Для поиска в текущем каталоге следует указать символ «точка» в качестве пути.
Работа с дискетой
Обозначения / dev / fdo - дисковод
/ mnt / floppy - точка монтирования
Форматирование
# fdformat / dev / df0
# fdformat - n / dev / fd0
Создание файловой системы
# mkfs -t < тип_файловой_системы > / dev / fdo
# mkfs - t msdos / dev / fd0 - создается дискета DOS ( загрузочный сектор, две копии FAT – таблицы, корневой каталог
# mkfs - t ext2 / dev / fd0 - создается дискета Linux ( суперблок, область индексных дескрипторов, область данных )
Копирование на дискету
# cp < имена_файлов > / mnt / floppy
Логические операторы
-a - логическое умножение AND
-o - логическое сложение OR
! - отрицание NOT
Пример. Проверка права «чтения» файла abc.dat
ls –l abc.dat
test [-w abc.dat]
echo $?
На экран будет выведена 1, если есть право чтения -rw r-- r--
Пример. Проверка права «чтения» файла abc.dat и abc1.dat
ls –l abc*.dat
test [-w abc.dat –a abc1.dat]
echo $?
Пример. Проверка права «чтения» файла abc.dat или abc1.dat
ls –l abc*.dat
test [-w abc.dat –о abc1.dat]
echo $?
Есть возможность проверять строки и числа, как правило, для проверки вводимых пользователем данных, например пароля.
[cтрока1 = строка2]
echo $?
[-z строка] - строка пустая
[-n строка] - строка непустая
Для проверки условий используется оператор IF
if [условие] then команды fi | if [условие] then команды1 else команды2 fi |
Условные операторы применяются для проверки результатов поиска файлов
if [grep “abc” file1.dat]
then echo “ файлы, содержащие символы abc, найдены”
else echo “ файлы, содержащие символы abc, не найдены”
fi
Пример. Проверка пустой каталог или нет
# ! / bin / sh
if [ “ ` ls –a D1 ` ” = ” ”] then
echo “ каталог пустой ”
else echo “ каталог не пустой”
fi
Ввод данных осуществляется оператором read список ввода
read a1 a2 a3
Существует возможность передачи параметров в командной строке при вызове сценария
# имя_сценнария параметр1 параметр2 …
# ch1 D1 D2
В сценарии переменная $1 примет значение D1, а переменная $2 – значение D2
D1 и D2 могут означать имена каталогов
Пример. Создать каталог, имя которого передается, как параметр командной строки
# ! /bin /sh файл ch1
$D1=$1
mkdir $D1
echo “ создан каталог ”, $D1
вызов сценария # ./ ch1 rt1 - будет создан каталог rt1
Циклы
Общий формат цикла for
For имя_переменной in list
Do
Команда1
Команда2
……..
Done
Цикл forоднократно выполняет команды, записанные в теле цикла для каждого значения, указанного в списке list.Списокlistможет содержать числа, строки, имена файлов. Командой может быть команда интерпретатора или оператор shell.
Пример
# !/ bin/sh на экран будут выведены имена файлов
for ps in `ls` текущего каталога
do
echo $ps
done
Пример. Создание резервных копий файлов текущего каталога. Резервная копия будет получена копированием файла в файл к имени, которого приписано расширение bak.
# !/ bin/sh
$bk = ”.bak”
for ps in `ls -a`
do
cp $ps $ps$bk
done
если в каталоге есть файлы: a1, a1.txt, b11, b11.doc, то будут созданы файлы
a1.bak, a1.txt.bak, b11.bak, b11.doc.bak
Сетевая операционная система
Средства управления
локальными ресурсами
Сетевые средства
Серверная Клиентская
Часть часть
Транспортные средства
Упрощенно работа сетевой ОС происходит следующим образом. Предположим, что пользователь компьютера А решил разместить свой файл на диске другого компьютера сети - компьютера В.
Компьютер А данные Компьютер B
Порядок действий:
1. Пользователь компьютера А выполняет команды передачи данных на другой компьютер (мышью или набирает на клавиатуре);
2. Программный модуль ОС, отвечающий за диалог пользователя, принимает команду, определяет ее тип и передает ее клиентской части ОС компьютера А;
3. Клиентская часть компьютера А сама не может получить доступ к ресурсам компьютера В и посылает запрос на компьютер В, который передается транспортными средствами ОС;
4. Если запрос принят, то происходит передача данных, которые могут содержать либо набор команд, либо сами данные
Управляют передачей сообщений между клиентской и серверными частями по сети транспортные средства ОС, которые выполняют функции:
- Формирования данных для передачи – сообщений, т. е. добавляется служебная информация – адреса и т.д.
- Разбивку сообщения на части, если это необходимо;
- Преобразования символьного имени компьютера в числовой адрес;
- Проверку правильности передачи сообщения (проверку контрольной суммы );
- Определения маршрута передачи данных в сложной сети;
Для того, чтобы два компьютера в сети могли обмениваться сообщениями, транспортные средства должны поддерживать общие правила передачи информации (протокол). Коммуникационные протоколы переносят сообщения по сети, не вникая в их содержания.
Клиентская часть ОС должна уметь отличать запрос к удаленному файлу от запроса к локальному файлу. В этом случае приложения не должны заботиться о том, с каким файлом локальном или удаленным, они работают. Клиентская программа сама распознает и перенаправляет запрос к удаленному файлу. Клиентская часть или модуль, который выполняет функции распознавания, называется редиректор.
Клиентская часть ОС выполняет также преобразование форматов запросов к ресурсам. Запрос на доступ к ресурсам принимается в локальном формате, то есть в том который принят на локальном компьютере, в сеть запрос передается в формате, соответствующем требованиям серверной части ОС, работающей на компьютере, где расположен требуемый ресурс. Прием ответа от серверной части и преобразование его в локальный формат также выполняется клиентской частью ОС. Для приложения выполнение локального или удаленного запроса не различимо.
Компьютер, который занимается исключительно обслуживанием запросов других компьютеров – называется выделенным сервером, на нем устанавливается специальный вариант сетевой ОС – серверная ОС.
Компьютер, который обращается с запросами к другому компьютеру, - клиентский узел, на нем устанавливается клиентская ОС, которая позволяет
- Подключаться к сети;
- Передавать данные через сеть;
- Находить и использовать сетевые ресурсы, например принтер
Клиентское программное обеспечение не заменяет собой обычную ОС, а добавляет возможности пользоваться услугами сетевых служб, когда возникает необходимость.
Компьютер, который совмещает функции клиента и сервера – одноранговым узлом.
Многие сетевые ОС имеют два варианта выпуска: один предназначен для работы в качестве серверной ОС, другой – в качестве клиентской.
Сетевые службы – специальные программы, которые обеспечивают доступ к конкретному типу ресурса компьютера через сеть, т. есть предоставляет пользователю некоторый набор услуг. Сетевая служба связана с определенным ресурсом и определенным доступом к этому ресурсу.
Сетевые службы:
- Файловая служба – поддержка файловой организации данных;
- Служба печати – организация печати на сетевом принтере;
- Служба репликации – обеспечение непротиворечивости нескольких копий документов, расположенных на разных компьютерах;
- Служба вызова удаленных процедур – организация выполнения одной задачи параллельно на нескольких компьютерах;
- Служба разрешения имен компьютеров – формирует аппаратный адрес компьютера по его числовому адресу и символьному имени;
- Служба администрирования учетных записей пользователей – позволяет вести общую базу данных о пользователях сети;
- служба мониторинга сети – позволяет анализировать сетевой трафик;
- служба безопасности – выполняет процедуру входа пользователя в сеть с проверкой пароля;
служба резервного копирования и архивирования данных.
Сетевые службы являются клиент - серверными системами. При реализации любой сетевой услуги возникает источник запроса (клиент) и исполнитель запросов (сервер), поэтому любая сетевая служба содержит в своем составе две части – клиентскую и серверную.
Говорят, что сервер предоставляет свои услуги клиенту, а клиент ими пользуется. Следует отметить, что при формировании и выполнении запроса сетевые службы используют ресурсы не только сервера, но и клиента.
Принципиальная разница между клиентской и серверной частью состоит в том, что инициатором работы выступает клиент, а сервер находится в состоянии ожидания запроса.
Взаимодействие между клиентской и серверной частью, обычно стандартизировано. Один тип сервера может быть рассчитан на работу с клиентами нескольких типов. Обязательное условие – клиент и сервер должны поддерживать общий протокол взаимодействия.
Одним из главных показателей качества сетевой службы является ее удобство. Например, файловая служба может быть основана на использовании команды передачи файла с одного компьютера на другой по имени файла, что требует от пользователя знания имени файла. Та же файловая служба может быть реализована так, что пользователь монтирует (присоединяет) удаленную файловую систему к локальному каталогу, а затем обращается к удаленным файлам как к своим собственным, что гораздо удобней.
Свойство сети, при котором пользователь работает с удаленными файлами, как со своими собственными, называется прозрачностью и пока редко встречается на практике.
Сетевые службы могут быть встроены в состав ОС, могут быть представлены в виде некоторого набора – оболочки программ, или поставляется в виде отдельного программного продукта.
Программы, которые работают в сети и относятся к прикладному программному обеспечению, называются сетевыми или распределенными приложениями. Сетевое приложение состоит из нескольких частей, расположенных на разных компьютерах, между которыми организовано взаимодействие.
Пример. Одна часть приложения работает на компьютере, который хранит базу данных большого объема, а вторая – на компьютере пользователя, который желает видеть на экране часть данных базы данных.
На практике, как правило, приложение разделяется на две или три части.
Для каждого приложения можно составить свою схему деления на части, но в общем случае приложение подразделяется на: интерфейс пользователя, средства построения запросов к данным, внутренние операции базы данных – действия СУБД и файловые операции – стандартные операции над файлами, обычно являются функциями ОС.
Двухзвенная схема клиент сервер
Двухзвенная схема, распределяет приложение между двумя компьютерами, существует несколько способов распределения частей приложения.
Централизованная схема
Компьютер 1 | Компьютер 2 | |||
Эмуляция терминала сервера | Средства построения запросов | Операции БД | Файловые операции | |
клиент | сервер |
В данном случае компьютер пользователя работает как терминал и выполняет функции представления данных – интерфейса (текстового или графического). Ресурсы компьютера – клиента используются в незначительной степени, как правило, это графические средства подсистемы ввода-вывода ОС и сетевые средства ОС, которые принимают из сети команды центрального компьютера и возвращают данные о нажатии клавиш и координатах мыши. Приложение, которое работает на компьютере - клиенте часто называется эмулятор терминала. Все остальные действия выполняются на сервере. Основной недостаток – низкая надежность.
Схема «Файловый сервер»
Компьютер 1 | Компьютер 2 | |||
Интерфейс пользователя | Средства построения запросов | Операции БД | Файловые операции + данные | |
клиент | сервер |
В этом случае на клиентской машине выполняются все части приложения, кроме файловых операций. В сети есть достаточно мощный компьютер, который хранит файлы, доступ к которым необходим большому числу пользователей – файловый сервер. Недостатки – компьютер – клиент должен быть достаточно мощным, может сильно возрасти сетевая нагрузка.
Существует третий вариант, который более равномерно распределяет функции между клиентской и серверной частями системы.
Компьютер 1 | Компьютер 2 | |||
Интерфейс пользователя | Средства построения запросов | Операции БД | Файловые операции | |
клиент | сервер |
В данном случае, компьютер – клиент выполняет все функции, специфические для данного приложения, а сервер – а сервер реализация которых не зависит от специфики приложения, и эти функции могут быть оформлены в виде сетевых служб.