Чтобы было возможно писать программы, работающие в любой системе unix, был разработан стандарт posix

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

Содержание


Системы разделения времени
Распределенная операционная система
LINUX, в отличии от микроядерной MINIX она стала монолитной. Чуть позже вышла FreeBSD
2. Классификация ПО
2.3 Языки программирования (редакторы)
2.4 Инструментальные средства (утилиты)
2.5 Прикладное программное обеспечение
Прикладные программы предназначены
Основы строения ОС
3.1. Определение и основные составляющие ОС
3.2. Общий принцип работы ОС
3.3. Основные понятия, концепции ОС
Системные вызовы (system calls)
Прерывания внешние, внутренние и программные.
Управление данными
Страничная и сегментная организация памяти
В настоящее время используется
Свопинг (swapping)
В целом эта технология замедляет доступ к процессам, но освобождает оперативную память, поэтому в современных ОС используются мо
Управление виртуальной памятью
...
Полное содержание
Подобный материал:
  1   2   3   4   5


Лекции “Операционные системы среды и оболочки”

2010г.


ПИЭЗ-07 27.03.2010


1. История ОС

Первые (1945-1955г.г.) компьютеры работали без операционных систем, как правило, на них работала одна программа.

Первые системы пакетной обработки (1955-1965г.г.), которые просто автоматизировали запуск одной программ за другой и тем самым увеличивали коэффициент загрузки процессора. Системы пакетной обработки явились прообразом современных операционных систем. Совокупность нескольких заданий, как правило, в виде колоды перфокарт, получила название пакета заданий.

В (1965-1980) появилось понятие Многозадачность - это способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняются несколько задач. Пока одна задача выполняет операцию ввода-вывода, процессор не простаивает, как это происходило при последовательном выполнении задач , а выполняет другую задачу. Для этого создали систему распределения памяти, когда каждая задача загружается в свой участок оперативной памяти, называемый разделом.

Системы разделения времени - вариант многозадачности, при котором у каждого пользователя есть свой диалоговый терминал. Это было сделано, чтобы каждый программист мог отлаживать свою программу в реальном времени. Фактически это была многопользовательская система. Естественно стали возникать проблемы защиты задач друг от друга.

В это время также стали бурно развиваться мини-компьютеры (первый был выпущен в 1961г.), на которые была перенесена система в дальнейшем развилась в систему UNIX.

Появилось много разновидностей несовместимых UNIX, основные из них были System V и BSD. Чтобы было возможно писать программы, работающие в любой системе UNIX, был разработан стандарт POSIX. Стандарт POSIX определяет минимальный интерфейс системного вызова, который должны поддерживать системы UNUX.

В начале 80-х была разработана система MS-DOS, и стала основной системой для микрокомпьютеров.

С 1985 года стала выпускаться Windows, в то время она была графической оболочкой к MS-DOS вплоть до 1995г., когда вышла Windows 95.

Уже тогда было ясно, что DOS с ее ограничениями по памяти и по возможностям файловой системы не может воспользоваться вычислительной мощностью появляющихся компьютеров. Поэтому IBM и Microsoft начинали совместно разрабатывать операционную систему OS/2. Она должна была поддерживать вытесняющую многозадачность, виртуальную память, графический пользовательский интерфейс, виртуальную машину для выполнения DOS-приложений. Первая версия вышла 1987г.

В дальнейшем Microsoft отошла от разработки OS/2, и стала разрабатывать Windows NT. Первая версия вышла в 1993г.

В середине 80-х стали бурно развиваться сети персональных компьютеров, работающие под управлением сетевых или распределенных операционных систем.

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

Распределенная операционная система, напротив, представляется пользователям простой системой, в которой пользователь не должен беспокоиться о том, где работают его программы или где расположены файлы, все это должно автоматически обрабатываться самой операционной системой.

  В 1991г. была выпущена LINUX, в отличии от микроядерной MINIX она стала монолитной.

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

Чтобы несколько программ могло работать с одним ресурсом (процессор, память), необходима система управления ресурсами.

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

2. Классификация ПО


Без программ (совокупности команд, которые должен выполнять процессор) компьютер - не более чем простое переплетение бесполезных электронных схем.

Программное обеспечение (software) на данный момент составляет сотни тысяч программ, которые предназначены для обработки самой разнообразной информация с самыми различными целями. В зависимости от того, какие задачи выполняет то или иное программное обеспечение, его можно разделять на несколько групп:
  • Системное программное обеспечение
  • Трансляторы
  • Языки программирования и их редакторы
  • Инструментальные средства
  • Прикладное программное обеспечение



2.1 Системное программное обеспечение

К системному программному обеспечению относят операционные системы и оболочки операционных систем.

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

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

1) интерфейсные, в основном графического типа, модифицирующие как пользовательский, так и программный интерфейсы ОС, а также реализующие иногда дополнительные возможности по распределению ресурсов ЭВМ.

Примеры: Win32 GUI, Linux KDE, Linux Gnome, Novell Netware GUI. Explorer

2) интерактивные, модифицирующие только пользовательский интерфейс, повышая его уровень и наиболее полно удовлетворяя потребности пользователя.

Большинство распространенных оболочек обеспечивают:

а) работу с файлами:

б) просмотр и редактирование (только текстовых) файлов.

в) создание пользовательских меню для упрощения запуска часто используемых программ;

г) выдачу сведений о размещении информации на дисках и ресурсах ЭВМ.

Самой распространенным примером оболочки ОС является оболочка Norton Commander для MS DOS компании Peter Norton computing. По своим возможностям ей не уступает оболочка Volkov Commander.

Из имеющихся интерфейсных систем наиболее известна Windows 3.0, выпущенная компанией Microsoft Corp. в 1990 году и признанная, кстати, лучшим программным продуктом года. Устанавливается поверх MS-DOS.

3) утилиты – обслуживающие программы, которые предоставляют пользователю сервисные функции. Многие из утилит обладают развитым диалоговым интерфейсом с пользователем и приближаются по уровню общения к оболочкам. Остальные же используются путем их запуска с определенными аргументами.

Утилиты могут быть встроенными в ОС и представлять собой часть оболочки или самостоятельными программами.

Существующие в настоящее время утилиты обеспечивают реализацию таких функций:

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

б) утилиты печати;

в) шифрование информации;

г) защита от компьютерных вирусов;

д) архивация данных.


2.2 Трансляторы

К трансляторам относят программы, которые преобразуют команды программ, написанных на языках высокого уровня, таких как Qbasic, Pascal, С, Prolog, Ada и других, в команды, записанные в машинных кодах, использующих двоичный алфавит. Эти программы можно назвать программами-переводчиками с языков программирования высокого уровня на машинный язык.

Трансляторы бывают двух видов: интерпретаторы и компиляторы. Оба вида трансляторов выполняют одну и туже операцию, но делают это по-разному.

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

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

Интерпретатор удобно использовать на этапе написания и отладки программы, так как интерпретатор позволяет отслеживать ошибки, допущенные программистом при написании программы, а компилятор используется для преобразования уже готовой, отлаженной, выверенной программы. Компилированная программа будет выполняться быстрее, так как машине не нужно перед выполнением команды осуществлять перевод


2.3 Языки программирования (редакторы)

Языки программирования, вернее - редакторы текстов программ для языков программирования, это программы, которые позволяют записывать алгоритмы решения каких-либо задач на том или ином языке программирования. Эти редакторы позволяют не просто записывать текст программы, но обычно имеют встроенный интерпретатор этого языка, систему отслеживания ошибок, возможность формирования библиотеки подпрограмм, возможность формирования собственных пользовательских функций, причем языки программирования позволяют записывать алгоритмы на языках приближенных к обычному человеческому языку, Непосредственно из них можно запускать программы на компиляцию. Кроме того, можно работать с блоками текста программ", осуществлять их перенос из одного места программы в другое, копировать программу или ее части в указанное место другой программы, осуществлять контекстный поиск и замену подстрок.

Современные редакторы языков программирования называются IDE (Integrated Development Environment) - интегрированная среда разработки, которая позволяет писать код, отлаживать его и транслировать в одном рабочем пространстве. Она же включает в себя и среду запуска написанных приложений Runtime Environment. Если эта среда будет отсутствовать у пользователя, то написанные на этом языке приложения не смогут запускаться. Например, для запуска Java-приложений требуется Java 2 Runtime Environment (J2RE).

Некоторые языки поставляются с SDK (Software Development [Developer's] Kit) набором средств для разработки ПО, комплектом программ для разработчика ПО, который обычно поставляется производителем системного ПО, чтобы дать возможность третьим фирмам разработать приложения под свои продукты и тем самым повысить их ценность для покупателей. Это набор инструментальных средств разработки программного обеспечения, включающий библиотеки, заголовочные файлы, help-файлы, документацию и т.п.

Таким образом, IDE = SDK + RE.

2.4 Инструментальные средства (утилиты)

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

Утилиты могут быть встроенными в ОС и представлять собой часть оболочки или самостоятельными программами – инструментальными средствами.

Самостоятельные инструментальные средства можно подразделить на:
  • утилиты мониторинга (диски, раскладка клавиатуры, время)
  • утилиты архивации
  • утилиты диагностики (MHDD, Partition Magic, Acronis Disk Director, scandisk, chkdsk; Memtest)
  • утилиты безопасности и связи



2.5 Прикладное программное обеспечение

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

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

Вопреки внешним различиям все программы должны выполнять некоторые общие основополагающие функции. Такие как:
  • хранить информацию в ОЗУ
  • помнить, где она находится
  • извлекать ее определенным образом
  • записывать информацию на внешние носители
  • предъявлять ее для непосредственного восприятия и др.



Среди прикладных программ, по преобладанию некоторых функций, выделяют:
  • текстовые редакторы и издательские системы
  • графические редакторы
  • электронные таблицы
  • базы данных (БД) и системы управления базами данных (СУБД)
  • музыкальные редакторы
  • интегрированные пакеты прикладных программ
  • CAD/CAM/CAE-пакеты, SCADA-системы