Структурная схема и устройства ПК
Базой ПК является материнская плата, которая определяет его конфигурацию. Все устройства ПК подключаются к этой плате с помощью разъемов расположенных на этой плате. Соединение всех устройств в единую систему обеспечивается с помощью системной магистрали (шины), представляющей собой линии передачи данных, адресов и управления.
Ядро ПК образуют процессор (центральный микропроцессор) и основная память, состоящая из оперативной памяти и постоянного запоминающего устройства (ПЗУ) или перепрограммируемого постоянного запоминающего устройства ППЗУ. ПЗУ предназначается для записи и постоянного хранения данных.
Подключение всех внешних устройств: клавиатуры, монитора, внешних ЗУ, мыши, принтера и т.д. обеспечивается через контроллеры, адаптеры, карты.Контроллеры, адаптеры или карты имеют свой процессор и свою память, т.е. представляют собой специализированный процессор.
В логической структуре типичной вычислительной системы операционная система обеспечивает управлениеустройствами с их микроархитектурой, владеет машинным языком и собственными (встроенными) микропрограммами — с одной стороны — и обеспечивает управлениеприкладными программами.Разработчикам программного обеспечения операционная система позволяет абстрагироваться от деталей реализации и функционирования устройств, предоставляя минимально необходимый набор функций.
Использование большинства компьютеров на уровне машинного языка затруднительно, особенно это касается ввода-вывода. Например, для организации чтения блока данных с гибкого диска программист может использовать 16 различных команд, каждая из которых требует 13 параметров, таких как номер блока на диске, номер сектора на дорожке и т. п. Когда выполнение операции с диском завершается, контроллер возвращает 23 значения, отражающих наличие и типы ошибок, которые, очевидно, надо анализировать. Даже если не входить в курс реальных проблем программирования ввода-вывода, ясно, что среди программистов нашлось бы не много желающих непосредственно заниматься программированием этих операций.
При работе с диском программисту-пользователю достаточно представлять его в виде некоторого набора файлов, каждый из которых имеет имя. Работа с файлом заключается в его открытии, выполнении чтения или записи, а затем в закрытии файла. Вопросы подобные таким, как следует ли при записи использовать усовершенствованную частотную модуляцию или в каком состоянии сейчас находится двигатель механизма перемещения считывающих головок, не должны волновать пользователя. Программа, которая скрывает от программиста все реалии аппаратуры и предоставляет возможность простого, удобного просмотра указанных файлов, чтения или записи - это, конечно, операционная система.
В каждом случае та упрощенная, воображаемая ЭВМ-машина, с которой, благодаря операционной системе, теперь может иметь дело пользователь, гораздо проще и удобнее в обращении, чем реальная аппаратура, лежащая в основе этой абстрактной машины. С этой точки зрения функцией ОС является предоставление пользователю некоторой упрощенной (виртуальной) машины, которую легче программировать и с которой легче работать, чем непосредственно с аппаратурой, составляющей реальную машину. при разработке первых систем программирования прежде всего создавали программные модули для подсистемы ввода/вывода, а уже затем — вычисления часто встречающихся математических операций и функций. Благодаря этому при создании прикладных программ программисты могли просто обращаться к соответствующим функциям ввода/вывода и иным функциям и процедурам, что избавляло их от необходимости каждый раз создавать все программные компоненты «с нуля» и от необходимости знать во всех подробностях особенности работы контроллеров ввода/вывода и соответствующих интерфейсов.
При разработке первых систем программирования прежде всего создавали программные модули для подсистемы ввода/вывода, а уже затем — вычисления часто встречающихся математических операций и функций. Благодаря этому при создании прикладных программ программисты могли просто обращаться к соответствующим функциям ввода/вывода и иным функциям и процедурам, что избавляло их от необходимости каждый раз создавать все программные компоненты «с нуля» и от необходимости знать во всех подробностях особенности работы контроллеров ввода/вывода и соответствующих интерфейсов.
Следующий шаг в автоматизации создания готовых к выполнению машинных двоичных программ заключался в создании транслятора с алгоритмического языка более высокого уровни, чем первые ассемблеры. Транслятор сам мог подставить вместо высокоуровневого оператора (команды) типа READ или WRITE все необходимые вызовы к готовым библиотечным программным модулям.
· 1.2В конечном итоге возникла ситуация, когда при создании программ программисты могут вообще не знать деталей управления конкретными ресурсами вычислительной системы, а должны только обращаться к некоторой программной подсистеме с соответствующими вызовами и получать от нее необходимые функции и сервисы. Эта программная подсистема и есть операционная система, а набор ее функций, сервисов и правила обращенияс ними как раз и образуют то базовое понятие, которое мы называем операционной средой. Параллельное существование терминов «операционная система» и «операционная среда» вызвано тем, что ОС в общем случае может поддерживать несколько операционных сред. Например, операционная система OS/2 Warp может выполнять следующие программы: а) 16-битовые программы, созданные для систем OS/2 первого поколения; б) 16-битовые приложения, разработанные для выполнения в операционной среде MS-DOS; в) 16-битрвые приложения, созданные для операционной среды Windows З.х; г) саму операционную оболочку Windows З.х и уже в ней - созданные для нее программы
В большинстве вычислительных систем операционная система является основной, наиболее важной (а иногда и единственной) частью системного программного обеспечения. С 1990-х годов наиболее распространёнными операционными системами являются системы семейства Windows и системы класса UNIX (особенно Linux и Mac OS).
2.1Основные функции операционной системы:
Взгляд на функции системы дает представление об ОС как о некотором механизме, управляющем всеми частями сложной системы.Операционня система:
Обеспечивает многозадачность организацией и управление процессами.Обеспечивает разделение аппаратных ресурсов между пользователями. Организует работу с другими общими данными в режиме коллективного пользования. Обеспечивает доступ к ресурсам (память) и программным компонентам через виртальные таблицы. Определяет интерфейс пользователя.Обеспечивает выполнение операций ввода/вывода. Осуществляет восстановление вычислительных процессов в случае ошибок и хранит информацию об ошибках Проводит Загрузку программ в оперативную память и передает управление ядру. Реализует связь и вызов различных программ через специальные программнные компоненты. Организует удаленные ( с других компьютеров) вызовы программ, используя сетевые технологии. Организация файловых структуры и управление файловыми системами.
ОС взаимодействует:
С пользователями, с администратором - главным пользователем, гостями. С аппаратными средствами. С прикладными программами. С системными программами. Она представляет каждому пользователю свой интерфейс.
Дополнительные важные функции:
Организация надёжных вычислений (невозможности одного вычислительного процесса повлиять на вычисления в другом процессе). Взаимодействие между процессами: разграничение доступа различных процессов к ресурсам,обмен данными, взаимная синхронизация.Защита самой системы, и пользовательских данных от неправильных действий пользователей или приложений.Разграничение прав доступа (см.: аутентификация, авторизация).
Лекция 23Развитие ОС.
Рождение цифровых ЭВМ произошло после окончания II мировой войны. ОС не было. Программирование осуществлялось исключительно на машинном языке. Все задачи организации вычислительного процесса решались вручную программистом с помощью пульта управления. Предшественником операционных систем являются служебные программы (загрузчики и мониторы), а также библиотеки часто используемых подпрограмм, начавшие разрабатываться с появлением компьютеров 1-го поколения (1940 годы). Служебные программы минимизировали физические манипуляции оператора с оборудованием, а библиотеки позволяли избежать многократного программирования одних и тех же действий (осуществления операций ввода-вывода, вычисления математических функций и т. п.).Дополнительно был разработан формализованный язык управления заданиями,набор директив которого включал: Признак начала работы; Вызов транслятора; Вызов загрузчика; Признак начала и конца исходных данных.Пакеты заданий без участия оператора запускались на выполнение монитором – управляющей программой.
PDP8, мини-компьютер фирмы DEC - второе поколение на транзисторах с общей шиной.
С появлением новой технической базы (полупроводниковых элементов) возрослобыстродействие процессоров, увеличился объем оперативной и внешней памяти, компьютеры стали более надёжными.
3.2 В эти годы появились первые алгоритмические языки и, новый тип Системного ПО – транслятор.Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке, в определённом смысле, равносильную первой.Язык процессоров (машинный код) обычно является низкоуровневым. Транслятор, который преобразует программы в машинный язык, принимаемый и исполняемый непосредственно процессором, называется компилятором. Он имеет сервисы, предоставляемые операционной системой и сторонние библиотеки (например, для файловыго ввода-вывода или графического интерфейса), для чего машинный код программы необходимо связать с этими сервисами и функциями библиотек. Связывание выполняется редактором связей или компоновщиком (который может быть частью компилятора).Связывание выполняется при начале исполнения программы загрузчиком.
Ассе́мблер (assembler — сборщик) — компилятор исходного текста программы, написанной на языке ассемблера, в программу на машинном языке.Язык ассе́мблера— машинно-ориентированный язык низкого уровня с командами, обычно соответствующими командам машины, который обеспечивает дополнительные возможности. вставкумакрокоманд; Он расширенн конструкциями языков программирования высокого уровня, такими как выражения, макрокоманды. Язык ассемблера — система обозначений, используемая для представления в удобочитаемой форме программ, написанных в машинном коде.Команды языка ассемблера один к одному соответствуют командам процессора. Фактически, они представляют собой более удобную для человека символьную форму записи — мнемокоды — команд и их аргументов. При этом одной команде языка ассемблера может соответствовать несколько вариантов команд процессора. Язык ассемблера позволяет писать самый быстрый и компактный код, какой вообще возможен для данного процессора.
Как и сам язык, ассемблеры, как правило, специфичны для конкретной архитектуры, операционной системы и варианта синтаксиса языка. Вместе с тем существуют мультиплатформенные или вовсе универсальные ассемблеры, которые могут работать на разных платформах и операционных системах. Среди последних можно также выделить группу кросс-ассемблеров, способных собирать машинный код и исполняемые модули (файлы) для других архитектур и ОС.
Многие компиляторы с языков программирования высокого уровня выдают результат в виде программы на языке ассемблера, которую в дальнейшем обрабатывает ассемблер. Также результатом ассемблирования может быть не исполнимый, а объектный модуль, содержащий блоки машинного кода и данных программы, из которого (или из нескольких объектных модулей) в дальнейшем с помощью редактора связей может быть получен исполнимый файл.
Для организации вычислительного процесса в штат многих вычислительных центров были введены новые должности операторов, но эффективность использования компьютера не возросла.
3.3Далее появились первые системы пакетной обработки. Пакет включал в себя команды определяющие последовательность работы имеющихся подпрограмм, контроль за исполнением этих программ и передачу полученных данных. Они стали первыми системами программирования, предназначенными не для обработки данных, а для управления вычислительным процессом.Программистов ценили за создание минимальных по размеру программ с коротким временнм исполнения. Такая потребность привела к появлению концепции «пакетного режима» исполнения программ. Пакетный режим предполагает наличие очереди программ на исполнение, причём система пакетной обработки может обеспечивать загрузку программы с внешних носителей данных в оперативную память, не дожидаясь завершения исполнения предыдущей программы, что позволяет избежать простоя процессора.
Уже пакетный режим требует разделения процессорного времени между выполнением нескольких программ. Необходимость в разделении времени (многозадачности, мультипрограммировании) проявилась ещё сильнее при распространении в качестве устройств ввода-вывода телетайпов (а позднее, терминалов с электронно-лучевыми дисплеями) (1960-е годы). Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором много ниже, чем скорость обработки этих данных компьютером, использование компьютера в «монопольном» режиме (с одним оператором) приводиьт к простою вычислительных ресурсов. Промежутки времени между вводом двух символов нужно было использовать для выполнения програм из очереди пакетов. Время работы процессора нужно было делить между кусочками программ не нарушая последовательности выполнения команд в этой программе. Важно было помнить на какой команде была она остановлена и затем начать выполнение с этой команды. Требуется также программа управления включением/выключением разных усторойств иподпрограмм из разных пакетов.
3.4Следующим этапом в развитии ОС был после перехода к компьютерам на больших интегральных схемах (БИС). Интегральные микросхемы разработаны в 1958 году. Быстродействие - 107 операций в секунду. Появилисьсверхбольшие интегральных схемы (СБИС) - микропроцессоров и контроллеров внешних устройств
На базе БИС фирма IBM, совместно с Intel и Microsoft, создала первый компьютер IBM РС. Он имел процессор Intel 8088 с частотой 4,77 МГц, Оперативная запоминающая память до 256 Кбайт, имел съемные гибкие диски. Жесткого диска не было.
Новые шаги в технике требовали ответа на программном фронте. Операционная система становилась «продолжением» аппаратуры. В 1950—1960-х годах сформировались и были реализованы ряд основных идей Операционных Систем: разделение времени и многозадачность, разделение полномочий, реальный масштаб времени, файловые структуры и файловые системы. Были реализованы все основные механизмы, присущие современным ОС: мультипрограммирование, мультипроцессирование, поддержка многопользовательского режима, виртуальная память, разграничение доступа и сетевая работа. Революционным событием явилась промышленная реализация мультипрограммирования, т.е. такого способа организации вычислительного процесса, при котором в памяти компьютера находятся одновременно несколько программ-процессов, попеременно выполняющихся на одном процессоре. Большую часть действий по организации вычислительного процесса взяла на себя ОС.
Разделение времени позволило создать «многопользовательские» системы, в которых один (как правило) центральный процессор и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких как ввод или редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие как массивные вычисления) — в пакетном режиме.
В большинстве современных компьютеров не предусмотрено даже теоретической возможности выполнения какой-либо вычислительной работы без участия ОС. После включения питания автоматически происходит поиск, загрузка и запуск ОС, а в случае ее отсутствия компьютер просто останавливается.
Лекция 3 3.5При появлении и росте число компьютеров и пользователей ОС вынужденно стали классификцировать по отличительным свойствам: а) по режиму обработки задач;б) по способу взаимодействия с системой;с) по способам построения (архитектурным особенностям систем).
Прежде всего, различают ОС общего и специального назначения. ОС специального назначенияподразделяются : ОС для переносимых микрокомпьютеров,ОС для различных встроенных систем, ОС для организации и ведения без данных, ОС для задач реального времени.
По режиму обработки задач различают ОС, обеспечивающие однопрограммный и мультипрограммный режимы. Под мультипрограммированием понимается способ организации вычислений, когда на однопроцессорной вычислительной системе создается видимость одновременного выполнения нескольких программ. Любая задержка в решении программы (например, для осуществления операций ввода/вывода данных) используется для выполнения других (таких же, либо менее важных) программ. Иногда при этом говорят о мультизадачном режиме. Мультипрограммный и мультизадачный режимы — это не синонимы, хотя и близкие понятия. Основное принципиальное отличие в этих терминах заключается в том, что мультипрограммный режим обеспечивает параллельное выполнение нескольких приложений и при этом программисты, создающие эти программы, не должны заботиться о механизмах организации их параллельной работы. Эти функции берет на себя сама ОС; именно она распределяет между выполняющимися приложениями ресурсы вычислительной системы и осуществляет синхронизацию вычислений и взаимодействий. Мультизадачный режим предполагает, что часть забот о параллельном выполнении и взаимодействии приложений ложится на прикладных программистов. Современные ОС для ПК реализуют и мультипрограммный и мультизадачный режимы.
В мультитерминальных ОС, с одной вычислительной системой одновременно могут работать несколько пользователей, каждый со своего терминала. При этом у пользователей возникает иллюзия, что у каждого из них имеется своя собственная вычислительная система. В качестве одного из примеров мультитерминальных ОС для ПК можно назвать Linux.Примерами однопользовательских ОС являются MS DOS фирмы Microsoft (США) и ОС/2, созданная совместно Microsoft и IBM.
Распространение многопользовательских систем потребовало решения задачи разделения полномочий, позволяющей избежать изменения исполняемой программы (или её данных) другой программой. а также изменения самой операционной системы прикладной программой. Реализация разделения полномочий в операционных системах была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора — «реальным» (в котором исполняемой программе доступно всё адресное пространство компьютера) и «защищённым» (в котором доступность адресного пространства ограничена диапазоном, выделенным при запуске программы на исполнение).
Применение компьютеров для управления производственными процессами потребовало реализации «масштаба реального времени» («реального времени») — синхронизации исполнения программ с внешними физическими процессами.Основной особенностью операционных систем реального времениявляется обеспечение обработки поступающих заданий в течение заданных интервалов времени, которые нельзя превышать. Поток заданий в общем случае не является планомерным и не может регулироваться оператором, то есть задания поступают в непредсказуемые моменты времени и без всякой очередности. Лучшие характеристики по производительности для систем реального времени дают однотерминальные ОС. Управляющие системы обычно являются распределенными системами. В распределенной системе нет единственной общей памяти и единственного процессора. Процессы в разных устройствах системы обмениваются информацией с помощью сообщений. Процесс готовит сообщение и передает его другому процессу с прмощью операционной системы. Этот принцип взаимодействия лежит в основе важной концепции (идеи) распределенных систем – модели клиент- сервер.