Процессы. В роли задач в UNIX выступают процессы

В роли задач в UNIX выступают процессы. Процесс - это программа, запущенная пользователем, которая находится в памяти и, как полагается задаче, потребляет ресурсы: выполняется, требует памяти, обменивается данными с системой, внешними устройствами и другими процессами. При запуске процесс получает уникальный идентификатор процесса (Process IDentifier, PID), по которому он становится доступен другим процессам и планировщику. Планировщик процессов в UNIX устроен достаточно сложно. Главное отличие планировщика UNIX заключается в том, что каждая задача из очереди работает в течение всего отведенного ей промежутка времени, но только в том случае, если ей есть чем заняться. Посмотрим на следующий слайд (*** слайд 48). Если задача к этому времени работать не может (например, ожидает завершения операции ввода/вывода, или сигнала, или освобождения какого-либо ресурса), она из начала перемещается в конец очереди первоочередных задач или в конец очереди "спящих" задач. Как только какая-нибудь задача из очереди спящих просыпается, ей тут же отводится место в начале обычной очереди. Таким образом максимально сокращается время простоя системы, если, конечно, количество выполняемых задач достаточно для того, чтобы полностью ее загрузить. Кроме того, очередь задач формируется и корректируется с учетом приоритетов.

 
 
Основная очередь задач

         
выполненная задача
З

П    

 
 
Очередь отложенных («спящих») задач


Между собой процессы могут обмениваться данными не только стандартными пользовательскими средствами (посредством файлов, каналов |, но и с помощью более быстрых системных, средств межпроцессного взаимодействия (Interprocess Communication, IPC). Процессы могут себе забронировать у системы общую память и тогда часть адресного пространства каждого из них будет ссылаться на один и тот же сегмент реальной памяти.

Насколько полно UNIX удовлетворяет принципам проективной системы? Попробуем это проанализировать.

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

Принцип минимизации затрат (З) последовательно реализован в интерфейсе командной строки. В соответствии с этим принципом пользователь всякий раз решает некую мыслительную задачу, с тем чтобы быстро реализовать ее решение на выбранном им командном языке (чаще всего это shell, но для иных задач полезнее sed или awk, а для задач побольше - perl, python, tcl, ruby и т. п.); при этом дальнейшее использование этого решения можно целиком доверить компьютеру, предварительно написав сценарий.

Принцип умопостижимости контекста (У) включает правило, которому очень тяжело следовать: «набор однотипных инструментов не должен превышать 7-9 штук. В UNIX редко встречаются перегруженные неструктурированные инструментарии. Практически все демоны и приложения UNIX используют так называемые файлы настроек. Это текстовые файлы, и, если количество в них информации достаточно велико, то они разбиты на секции и подсекции, что облегчает понимание. В самых сложных из них, например в файле настройки Web-сервера Apache, предусмотрена инструкция. Т.е. принцип У выполняется.

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

*** все что выше, взято из лекции 5 «ЮНИКС»

LINUX

Linux - это современная POSIX-совместимая и Unix-подобная операционная система для персональных компьютеров и рабочих станций. Это многопользовательская и многозадачная 32-разрядная сетевая система с оконной графической оболочкой X Window System. ОС Linux поддерживает протоколы сети Internet и совместима с системами DOS, MS Windows (!!!не наоборот!!!). Все компоненты системы, включая исходные тексты, распространяются с лицензией на свободное копирование и установку для неограниченного числа пользователей. ОС Linux широко распространена на платформах Intel PC 386/486/Pentium/Pentium Pro и завоевывает позиции на ряде других платформ. Основная цель при создании этой ОС – дать пользователям ПК бесплатную надежную ОС, которую они сами могут настроить под свои нужды.

Можно провести такую аналогию, - Вам дали строительный материал, инструмент и техническую документацию, для того, чтобы Вы построили дом в соответствии со своими потребностями.

Существуют несколько разновидностей Linux, разработанные различными производителями, например: Linux Red Hat, Open Linux, FreeBSD, OpenBSD, SlackWare, Debian, Mandrackе, Knoppix и другие. Все они имеют однотипное ядро и различаются модулями надстройки. Особенностью Knoppix является возможность полной работы с CD-ROM без использования винчестера; измененные настройки и созданные файлы сохраняются на дискетах.

Основные преимущества ОС LINUX

· высокое быстродействие;

· надежная, устойчивая работа и устойчивость к вирусам;

· возможность использования всех аппаратных преимуществ современных ПК, снимая ограничения, присущие DOS и MS Windows по использованию оперативной памяти и ресурсов процессоров;

· эффективное управление многозадачностью и приоритетами, фоновые задачи, не мешающие интерактивной работе;

· работа с сетями на базе Novell и MS Windows;

· возможность запуска прикладных программы других ОС, например, DOS и MS-Windows;

· широкий набор инструментальных средств для разработки прикладных программ любой в т.ч. и класса «клиент-сервер», пригодных для работы как в Linux, так и в других ОС;

· предоставление пользователю и разработчику хорошей учебной базы в виде документации и исходных текстов всех компонент, включая ядро самой ОС!;

Интерфейсы Linux


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: