- •Ос в общей структуре компьютера.
- •История операционных систем.
- •Классификация современных ос. Задачи современных ос.
- •6. Понятие процесса – ключевое понятие ос.
- •8. Трансляторы: компиляторы и интерпретаторы.
- •9. Иерархия зу (запоминающих устройств).
- •10. Управление оперативной памятью (оп). Менеджер памяти; swapping; виртуальная память.
- •11. Модели организации виртуальной памяти.
- •12. История ос unix.
- •13. Общая архитектура unix. Основные подсистемы ядра.
- •14. Пользовательская среда unix.
- •Командный интерпретатор shell.
- •16. Система каталогов в oс unix. Управление с помощью команд языка Bourn shell.
- •17. Управление файлами с помощью команд языка Bourn shell. Перенаправление ввода/вывода.
- •19. Обработка аргументов командной строки. Переменные окружения.
- •20. Пользователь и группа. Права доступа к файлу.
- •21. Системные вызовы и функции стандартных библиотек. Обработка ошибок.
- •22.Структура программы на языке с. Параметры главной функции (пример).
- •23. Файловая система ос unix: монтирование, индексные дескрипторы, жесткие и символические ссылки, файлы устройств.
- •24.Системные вызовы для работы с файлами
- •25. Понятие «процесс» в ос unix. Контекст процесса; свойства процесса; состояние процесса.
- •26.Создание процессов и упр-е ими.
- •27. Запуск внешней программы
- •29.Общая классификация средств взаимодействия процессов в ос unix.
- •30.Иерархия процессов в ос unix. Понятие сеанса. Фоновые процессы.
- •31.Каналы – средства взаимодействия процессов. Неименованные каналы. Организация конвейера (пример программы).
- •33.Сигналы как средство взаимодействия процессов в ос unix. Диспозиция сигналов.
- •34.Ограничения для процесса в ос unix (по ресурсам). Связь со свойствами процесса.
- •36.Отображение файлов в виртуальное адресное пространство. Разделяемая память.
- •37. Взаимодействие процессов через псевдотерминал.
- •38. Недостатки потокового взаимодействия процессов. Средства System vipc. Пространство имен. Общие принципы работы со средствами System vipc.
- •39. Организация очереди сообщений в ос unix. Структура сообщения. Отправка и принятие сообщений.
- •40.Семафоры, как средство взаимодействия процессов System vipc. Понятие атомарной операции. Массив семафоров.
- •41.Разделяемая память, как средство взаимодействия процессов System vipc.
- •42.Взаимодействие по сети. Понятие протокола. Семейства адресации и типы взаимодействия. Создание сокета в ос unix.
- •45. Потоковые сокеты. Клиент – серверная модель.
- •46. Проблема очередности действий и ее решение.
- •47. Процессы-демоны. Система журнализации.
- •48. Загрузка и жизненный цикл в ос unix.
- •49. Взаимоисключения. Понятие критической секции. Устаревшие подходы к организации взаимного исключения.
- •50.Поддержка взаимоисключения на уровне ос. Мьютексы и семафоры (Дейкстры). Команда ассемблера tsl.
- •51.Проблема тупиков. Граф ожидания
- •52. Нити исполнения (pthreads) в ос unix. Мьютексы pthreads.
- •53.Графический интерфейс в ос unix. Базовые принципы построения x_window.
- •54.Файловая подсистема. Общая структура. Методы выделения дискового пространства. Управление дисковым пространством.
- •55.Файловая подсистема. Структура файловой системы на диске. Реализация директорий. Поиск в директории (хеширование).
- •56.Подсистема ввода/вывода. Схема взаимодействия подсистем ос. Понятие драйвера. Типы драйверов.
14. Пользовательская среда unix.
Сеанс работы в ОС Unix связан с понятием терминала (устройство, подключаемое к линии связи, имеющ. клав-у для ввода текстовой инф-ции и дисплей для отображения. Функциональность терминала сводится к передаче линии связи текста и отображения инф-ции, получен. по линии связи.
Linux и FreeBSD эмулируют терминалы на системн. клав-е и видеокарте. Эмулир-ся неск. терминалов независимо др. от др.
Терминальное окно – это базовая пользовательская среда непосредственных задач пользователя или администратора.
Командн. интерпритатор с ним начинаем работать. Эта оболочка берет команды пользователя вводим. командн. строке и преобразует их в процессы. Процессы получают доступ к файлам и уст-вам. К обязанностям оболочки: контроль кода и позволяет получать пользователю найти и выполнить программы, заставляет систему работать.
Командный интерпретатор shell.
Современная система поставляется с тремя командными интерпретаторами:
Bourne Shell (/bin/sh)
C Shell (/bin/csh)
Korn Shell (/bin/ksh)
Интерпретатор – первая программа, с которой начинается работа пользователя. В Unix с ее помощью организуется следующий сценарий работы:
При включении терминал активирует процесс getty. Он является сервером терминального доступа, и он запускает программу login, которая запрашивает у пользователя имя и пароль. Если пользователь зарегистрирован и ввел верно логин и пароль, то система запускает командный интерпретатор. Он выполняет соответствующий командный файл инициализации и выдает на терминал приглашение к работе. С этого момента можно вводить команды. Интерпретатор считывает ввод пользователя, производит синтаксический анализ, подстановку шаблона, выполняет действие или сообщает об ошибке. Считывание и выполнение команд интерпретатор производит в цикле. Сам интерпретатор – обычная пользовательская программа, не является частью ОС. Дальше по окончанию работы, пользователь завершает работу вводом команды exit или logout.
Командный интерпретатор является удобным средством программирования. По синтаксису языки различают 2 группы:
- с С-подобным синтаксисом (С Shell)
- интерпретаторы Bourne-типа.
Программа на языке интерпретатора называется командным файлом или скриптом или сценарием. Интерпретатор считывает строки из сценария и выполняет их как будто они введены в командной строке терминала. Интерпретатор работает пошагово или построчно.
При входе пользователя в систему запускается инициализационный скрипт, выполняющий следующие функции:
- установка пути поиска программ
- инициализация терминала
- определение расположения почтового ящика
Кроме этого можно выполнить ряд полезных действий. Файл инициализации profile.
Синтаксис языка Bourne Shell. Слова в команде разделяются пробелами, количество пробелов не играет роли. Инструкция интерпретатора состоит из необязательных назначения переменных, собственно команды и необязательного перенаправления потока ввода/вывода. Например:
> PATH=/home/andy/bin:/bin/ ls –l >/tmp/ls_res #список файлов
Этой командой потребовали выполнение команды ls с ключом –l. Смысл команды: вывод имен файлов текущего каталога с атрибутами. Ограничили область поиска этой команды каталогами /home/andy/bin и /bin/, задав на время выполнения команды значение переменной окружения PATH. Если в каталоге /home/andy/bin есть программа ls, то она запускается на выполнение, если нет, то запускается /bin/ls. Результат выполнения команды будет помещен в файл ls_res.
Командами могут быть встроенные функции, функции командного интерпретатора, определенные пользователем и внешние программы и утилиты. Это исполняемые bin файлы и скрипты. Команды могут выполняться синхронно, то приглашение к вводу следующей инструкции появляется после выполнения последней команды; или в фоновом режиме асинхронно.
При асинхронном интерпретатор не дожидается завершения выполнения команды для выдачи приглашения. Знак & в конце команды указывает на фоновое или асинхронное выполнение.
> find /home –name core –print > /tmp/cores &
Требуется поиск в каталоге home файлов по имени core, а все потоки вывода перенаправлены в файл /tmp/cores.