Современные операционные системы UNIX UNIX Linux Linux QNX QNX.

Презентация:



Advertisements
Похожие презентации
Современные операционные системы UNIX UNIX Linux Linux QNX QNX.
Advertisements

Лекция 6 Понятие операционных систем Учебные вопросы: 1. Характеристики ОС 2. Свободные и проприетарные ОС.
Управление процессами. Определение процесса. Основные понятия Процесс совокупность машинных команд и данных, которая обрабатывается в рамках вычислительной.
Основные характеристики операционных систем. Операционная система базовый комплекс программ, обеспечивающий управление аппаратными средствами компьютера,
Сетевые службы Для конечного пользователя сеть это не компьютеры, кабели и концентраторы и даже не информационные потоки, для него сеть это, прежде всего,
Управление процессами. Определение процесса. Основные понятия Процесс совокупность машинных команд и данных, которая исполняется в рамках вычислительной.
Системы реального времени Лекция 4: процессы. Понятие процесса Процесс - фундаментальное понятие любой операционной системы С помощью процессов происходит.
Программное управление компьютером. Компьютер Аппаратное обеспечениеПрограммное обеспечение Аппаратная часть включает основные и периферийные устройства.
Информатика в школе Операционная система Программное обеспечение.
Системное программное обеспечение. Виды программного обеспечения Программное обеспечение компьютера можно разделить на системное и прикладное. Прикладные.
Основные виды ресурсов и возможности их разделения.
Операционные системы. Проверка д / з В чем состоит магистрально - модульный принцип построения компьютера ? Изобразите схему архитектуры компьютера. В.
Устройство и принцип работы операционной системы Windows XP.
Операционная система Подготовил: кадет Карнаухов А.
Процессы и потоки. Процессы В общем представлении, процесс - это программа, выполняющаяся в оперативной памяти компьютера. Реально, все гораздо сложней.
Тема 1.3. Сервисное программное обеспечение. 1. Понятие операционного окружения Операцио́нное окруже́ние (англ. operating environment) среда, в которой.
Операционные системы Проект ученика 8 А класса Юрченко Василия.
Программное обеспечение компьютера. Совокупность программ, хранящихся в долговременной памяти компьютера, составляют программное обеспечение (ПО) компьютера.
Презентация на тему: Белгород Белгород2006 «Не графические Операционные системы» Выполнил: Пойманов В.Н.
Файловый тип данных Файл – это область памяти на внешнем носителе, в которой хранится некоторая информация. В языке Паскаль файл представляет собой последовательность.
Транксрипт:

Современные операционные системы UNIX UNIX Linux Linux QNX QNX

Семейство операционных систем UNIX Общая характеристика Общая характеристика исключительно удачная реализация простой мультипрограммной и многопользовательской операционной системы. исключительно удачная реализация простой мультипрограммной и многопользовательской операционной системы. создана всего двумя разработчиками (Кен Томпсон и Деннис Ритчи). создана всего двумя разработчиками (Кен Томпсон и Деннис Ритчи). обладает простым, но очень мощным командным языком и независимой от устройств файловой системой. обладает простым, но очень мощным командным языком и независимой от устройств файловой системой. система и приложения, выполняющиеся в ней, получились легко переносимыми (мобильными), поскольку написаны на языке С. система и приложения, выполняющиеся в ней, получились легко переносимыми (мобильными), поскольку написаны на языке С.

Цели разработки Стремление сохранить простоту и обойтись минимальным количеством функций. Стремление сохранить простоту и обойтись минимальным количеством функций. Общность. Одни и те же методы и механизмы должны были использоваться во многих случаях: Общность. Одни и те же методы и механизмы должны были использоваться во многих случаях: обращения к файлам, устройствам ввода/вывода и буферам межпроцессных сообщений выполняются с помощью одних и тех же примитивов; обращения к файлам, устройствам ввода/вывода и буферам межпроцессных сообщений выполняются с помощью одних и тех же примитивов; одни и те же механизмы именования, присвоения альтернативных имен и защиты от несанкционированного доступа применяются к файлам с данными и директориями, и устройствам; одни и те же механизмы именования, присвоения альтернативных имен и защиты от несанкционированного доступа применяются к файлам с данными и директориями, и устройствам; одни и те же механизмы работают в отношении программно и аппаратно инициируемых прерываний. одни и те же механизмы работают в отношении программно и аппаратно инициируемых прерываний.

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

Основные понятия ОС UNIX Виртуальная машина Виртуальная машина Пользователь Пользователь Интерфейс пользователя Интерфейс пользователя Привилегированный пользователь Привилегированный пользователь Команды и командный интерпретатор Команды и командный интерпретатор Процессы Процессы

Виртуальная машина Каждому пользователю после входа в систему предоставляется виртуальный компьютер, в котором, есть все необходимые ресурсы: процессор (процессорное время выделяется на основе «карусельной» диспетчеризации (RR round robin) и с использованием динамических приоритетов с тем, чтобы обеспечить равенство в обслуживании), память, устройства, файлы. Текущее состояние такого виртуального компьютера, предоставляемого пользователю, называется образом. Каждому пользователю после входа в систему предоставляется виртуальный компьютер, в котором, есть все необходимые ресурсы: процессор (процессорное время выделяется на основе «карусельной» диспетчеризации (RR round robin) и с использованием динамических приоритетов с тем, чтобы обеспечить равенство в обслуживании), память, устройства, файлы. Текущее состояние такого виртуального компьютера, предоставляемого пользователю, называется образом.

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

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

Пользователь UNIX предназначен для мультитерминальной работы. Чтобы начать работать, человек должен «войти» в систему, введя со свободного терминала свое учетное имя (account name) и, возможно, пароль (password). UNIX предназначен для мультитерминальной работы. Чтобы начать работать, человек должен «войти» в систему, введя со свободного терминала свое учетное имя (account name) и, возможно, пароль (password).войти Человек, зарегистрированный в учетных файлах системы и, следовательно, имеющий учетную запись (account), называется зарегистрированным пользователем системы. Человек, зарегистрированный в учетных файлах системы и, следовательно, имеющий учетную запись (account), называется зарегистрированным пользователем системы. Регистрацию новых пользователей обычно выполняет администратор системы. Регистрацию новых пользователей обычно выполняет администратор системы.

Пользователь Пользователь не может изменить свое учетное имя, но может установить и/или изменить свой пароль. Пароли хранятся в отдельном файле в закодированном виде. Пользователь не может изменить свое учетное имя, но может установить и/или изменить свой пароль. Пароли хранятся в отдельном файле в закодированном виде. Все пользователи ОС UNIX явно или неявно работают с файлами. Файловая система ОС UNIX имеет древовидную структуру. Промежуточными узлами дерева являются каталоги со ссылками на другие каталоги или файлы, а листья дерева соответствуют файлам или пустым каталогам. Все пользователи ОС UNIX явно или неявно работают с файлами. Файловая система ОС UNIX имеет древовидную структуру. Промежуточными узлами дерева являются каталоги со ссылками на другие каталоги или файлы, а листья дерева соответствуют файлам или пустым каталогам.

Пользователь Каждому зарегистрированному пользователю соответствует некоторый каталог файловой системы, который называется «домашним» (home) каталогом пользователя, доступ к домашнему каталогу и всем каталогам и файлам, содержащимся в нем - неограниченный. Пользователь может создавать, удалять и модифицировать каталоги и файлы, содержащиеся в домашнем каталоге. Каждому зарегистрированному пользователю соответствует некоторый каталог файловой системы, который называется «домашним» (home) каталогом пользователя, доступ к домашнему каталогу и всем каталогам и файлам, содержащимся в нем - неограниченный. Пользователь может создавать, удалять и модифицировать каталоги и файлы, содержащиеся в домашнем каталоге. Потенциально возможен доступ и ко всем другим файлам, однако он может быть ограничен, если пользователь не имеет достаточных привилегий. Потенциально возможен доступ и ко всем другим файлам, однако он может быть ограничен, если пользователь не имеет достаточных привилегий.

Интерфейс пользователя Традиционный способ взаимодействия пользователя с системой UNIX - использование командных языков. Традиционный способ взаимодействия пользователя с системой UNIX - использование командных языков. Имеются и графические интерфейсы на базе X Window. Имеются и графические интерфейсы на базе X Window. После входа пользователя в систему для него запускается один из командных интерпретаторов (в зависимости от параметров, сохраняемых в файле /etc/passwd). После входа пользователя в систему для него запускается один из командных интерпретаторов (в зависимости от параметров, сохраняемых в файле /etc/passwd).

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

Интерфейс пользователя Вызванный командный интерпретатор выдает приглашение на ввод пользователем командной строки, которая может содержать простую команду, конвейер команд или последовательность команд. Вызванный командный интерпретатор выдает приглашение на ввод пользователем командной строки, которая может содержать простую команду, конвейер команд или последовательность команд. После выполнения очередной командной строки и выдачи на экран терминала или в файл соответствующих результатов, shell снова выдает приглашение на ввод командной строки, и так до тех пор, пока пользователь не завершит свой сеанс работы и не выйдет из системы. После выполнения очередной командной строки и выдачи на экран терминала или в файл соответствующих результатов, shell снова выдает приглашение на ввод командной строки, и так до тех пор, пока пользователь не завершит свой сеанс работы и не выйдет из системы.

Интерфейс пользователя Командные языки, используемые в ОС UNIX, достаточно просты и достаточно мощны, чтобы можно было использовать их для написания сложных программ. Командные языки, используемые в ОС UNIX, достаточно просты и достаточно мощны, чтобы можно было использовать их для написания сложных программ. Имеется механизм командных файлов ( shell scripts ), которые могут содержать произвольные последовательности командных строк. При указании имени командного файла вместо очередной команды интерпретатор читает файл строка за строкой и последовательно интерпретирует команды. Имеется механизм командных файлов ( shell scripts ), которые могут содержать произвольные последовательности командных строк. При указании имени командного файла вместо очередной команды интерпретатор читает файл строка за строкой и последовательно интерпретирует команды.

Привилегированный пользователь Ядро ОС UNIX идентифицирует каждого пользователя по его идентификатору (UID user identifier), уникальному целому значению, присваиваемому пользователю при регистрации в системе. Ядро ОС UNIX идентифицирует каждого пользователя по его идентификатору (UID user identifier), уникальному целому значению, присваиваемому пользователю при регистрации в системе. Кроме того, каждый пользователь относится к некоторой группе пользователей, которая также идентифицируется некоторым целым значением (GID group identifier). Кроме того, каждый пользователь относится к некоторой группе пользователей, которая также идентифицируется некоторым целым значением (GID group identifier).

Привилегированный пользователь Значения UID и GID для каждого зарегистрированного пользователя сохраняют- ся в учетных файлах системы и припи- сываются процессу, в котором выполняется командный интерпретатор, запущенный при входе пользователя в систему. Значения UID и GID для каждого зарегистрированного пользователя сохраняют- ся в учетных файлах системы и припи- сываются процессу, в котором выполняется командный интерпретатор, запущенный при входе пользователя в систему. Эти значения наследуются каждым новым процессом, запущенным от имени данного пользователя, и используются ядром системы для контроля правомочности доступа к файлам, выполнения программ и т. д. Эти значения наследуются каждым новым процессом, запущенным от имени данного пользователя, и используются ядром системы для контроля правомочности доступа к файлам, выполнения программ и т. д.

Привилегированный пользователь Администратор системы (зарегистрированный пользователь) должен обладать большими возможностями, чем обычные пользователи. Администратор системы (зарегистрированный пользователь) должен обладать большими возможностями, чем обычные пользователи. В ОС UNIX эта задача решается путем выделения единственного нулевого значения UID. Пользователь с таким UID называется суперпользователем (superuser) или root. В ОС UNIX эта задача решается путем выделения единственного нулевого значения UID. Пользователь с таким UID называется суперпользователем (superuser) или root. Он имеет неограниченные права на доступ к любому файлу и на выполнение любой программы. Кроме того, он имеет возможность полного контроля над системой. Он может остановить ее и даже разрушить. Он имеет неограниченные права на доступ к любому файлу и на выполнение любой программы. Кроме того, он имеет возможность полного контроля над системой. Он может остановить ее и даже разрушить.

Привилегированный пользователь Важным отличием суперпользователя ОС UNIX является то, что на него не распространяются ограничения на используемые ресурсы. Важным отличием суперпользователя ОС UNIX является то, что на него не распространяются ограничения на используемые ресурсы. Для обычных пользователей устанавливаются такие ограничения, как максимальный размер файла, максимальное число сегментов разделяемой памяти, максимально допустимое пространство на Диске и т. д. Для обычных пользователей устанавливаются такие ограничения, как максимальный размер файла, максимальное число сегментов разделяемой памяти, максимально допустимое пространство на Диске и т. д. Суперпользователь может изменять эти ограничения для других пользователей, но на него они не действуют. Суперпользователь может изменять эти ограничения для других пользователей, но на него они не действуют.

Команды и командный интерпретатор Оболочкой ( shell ) в системе UNIX называют механизм взаимодействия между пользова- телями и системой. Это интерпретатор команд, который считывает набираемые пользователем строки и запускает выполнение запрошенных системных функций. Оболочкой ( shell ) в системе UNIX называют механизм взаимодействия между пользова- телями и системой. Это интерпретатор команд, который считывает набираемые пользователем строки и запускает выполнение запрошенных системных функций. Полный командный язык, интерпретируемый оболочкой, богат по возможностям и достаточно сложен, однако большинство команд просты в использовании и запомнить их не составляет труда. Полный командный язык, интерпретируемый оболочкой, богат по возможностям и достаточно сложен, однако большинство команд просты в использовании и запомнить их не составляет труда.

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

Команды и командный интерпретатор Любой командный язык семейства shell фактически состоит из трех частей: Любой командный язык семейства shell фактически состоит из трех частей: служебных конструкций, позволяющих манипулировать с текстовыми строками и строить сложные команды на основе простых команд; служебных конструкций, позволяющих манипулировать с текстовыми строками и строить сложные команды на основе простых команд; встроенных команд, выполняемых непосредственно интерпретатором командного языка; встроенных команд, выполняемых непосредственно интерпретатором командного языка; команд, представляемых отдельными выполняемыми файлами. команд, представляемых отдельными выполняемыми файлами. В свою очередь, набор команд последнего вида включает стандартные команды (системные утилиты, такие как vi, cc и т. д.) и команды, созданные пользователями системы. В свою очередь, набор команд последнего вида включает стандартные команды (системные утилиты, такие как vi, cc и т. д.) и команды, созданные пользователями системы.

Процессы Процесс в ОС UNIX - это программа, выполняемая в собственном виртуальном адресном пространстве. Процесс в ОС UNIX - это программа, выполняемая в собственном виртуальном адресном пространстве. Когда пользователь входит в систему, автоматически создается процесс, в котором выполняется программа командного интерпретатора. Когда пользователь входит в систему, автоматически создается процесс, в котором выполняется программа командного интерпретатора. Если командному интерпретатору встречается команда, соответствующая выполняемому файлу, то он создает новый процесс и запускает в нем соответствующую программу. Если командному интерпретатору встречается команда, соответствующая выполняемому файлу, то он создает новый процесс и запускает в нем соответствующую программу.

Процессы Эта запущенная программа, в свою очередь, может создать процесс и запустить в нем другую программу и т. д. Эта запущенная программа, в свою очередь, может создать процесс и запустить в нем другую программу и т. д. Для образования нового процесса и запуска в нем программы используются два системных вызова API fork() и ехес (). Для образования нового процесса и запуска в нем программы используются два системных вызова API fork() и ехес (). Системный вызов fork приводит к созданию нового адресного пространства, состояние которого абсолютно идентично состоянию адресного пространства основного процесса. Для дочернего процесса заводятся копии всех сегментов данных. Системный вызов fork приводит к созданию нового адресного пространства, состояние которого абсолютно идентично состоянию адресного пространства основного процесса. Для дочернего процесса заводятся копии всех сегментов данных.

Процессы Сразу после выполнения системного вызова fork основной и порожденный процессы являются близнецами: управление и в том и в другом находится в точке, непосредственно следующей за вызовом fork. Сразу после выполнения системного вызова fork основной и порожденный процессы являются близнецами: управление и в том и в другом находится в точке, непосредственно следующей за вызовом fork. Чтобы программа могла разобраться, в каком процессе она теперь работает в основном или порожденном, функция fork возвращает разные значения: 0 в порожденном процессе и целое положительное число (идентификатор порожденного процесса PID) в основном процессе. Чтобы программа могла разобраться, в каком процессе она теперь работает в основном или порожденном, функция fork возвращает разные значения: 0 в порожденном процессе и целое положительное число (идентификатор порожденного процесса PID) в основном процессе.

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

Процессы Другими словами, это приводит к замене текущего программного сегмента и текущего сегмента данных, которые были унаследованы при выполнении вызова fork, на новые соответствующие сегменты, заданные в файле. Другими словами, это приводит к замене текущего программного сегмента и текущего сегмента данных, которые были унаследованы при выполнении вызова fork, на новые соответствующие сегменты, заданные в файле. Прежние сегменты теряются. Это эффективный метод смены выполняемой процессом программы, но не самого процесса. Файлы, уже открытые до выполнения exec, остаются открытыми после его выполнения. Прежние сегменты теряются. Это эффективный метод смены выполняемой процессом программы, но не самого процесса. Файлы, уже открытые до выполнения exec, остаются открытыми после его выполнения.

Процессы В примере пользовательская программа, вызываемая как команда shell, выполняет в отдельном процессе стандартную команду shell ls, которая выдает на экран содержимое текущего каталога файлов. В примере пользовательская программа, вызываемая как команда shell, выполняет в отдельном процессе стандартную команду shell ls, которая выдает на экран содержимое текущего каталога файлов. #include #include main() {if(fork()==0) wait(0); /* родительский процесс */ else execl("/bin/ls", "", NULL): /* порожденный процесс */ }

Процессы Каждый процесс, за исключением начального, порождается в результате запуска другим процессом операции fork(). Каждый процесс имеет одного родителя, но может породить много процессов. Каждый процесс, за исключением начального, порождается в результате запуска другим процессом операции fork(). Каждый процесс имеет одного родителя, но может породить много процессов. Начальный процесс создается в результате загрузки системы. После порождения процесса с идентификатором 1 ( init ) начальный процесс становится процессом подкачки и реализует механизм виртуальной памяти. Начальный процесс создается в результате загрузки системы. После порождения процесса с идентификатором 1 ( init ) начальный процесс становится процессом подкачки и реализует механизм виртуальной памяти. Процесс init, является предком любого другого процесса в системе и связан с каждым процессом особым образом. Процесс init, является предком любого другого процесса в системе и связан с каждым процессом особым образом.