Добавил:
Берегите себя и своих близких. По всем вопросам - пишите в мой вк, помогу чем смогу. Всем УЗС привет! Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
33
Добавлен:
25.11.2016
Размер:
148.64 Кб
Скачать

 

1

1.4. Программное обес-

печение ЭВМ.

1.4.1. Классификация программного обеспечения.

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

Рассмотрим программное обеспечение, которое находится в обычной вычислительной системе. Начнем с разделения всего программного обеспечения на две большие группы: прикладное программное обеспечение и системное программное обеспече-

ние. Системное программное обеспечение выполняет задачи,

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

Системное программное обеспечение можно разделить на две группы: операционная система и обслуживающее программное обеспечение, или утилиты (рис. 1.4). Операционная система - программа, которая управляет общими действиями ЭВМ или группой машин, объединенных в сеть. Большая часть

обслуживающего программного обеспечения состоит из про-

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

иобслуживающим программным обеспечением часто очень условно.

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

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

2

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

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

 

системное

 

 

 

прикладное

 

 

 

 

 

 

 

 

 

 

 

 

операционная

 

 

обслуживающее

 

система

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ядро оболочка

Рис. 1.4. Классификация программного обеспечения.

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

1.4.2 Операционная система.

Операционная система – программа, которая управляет общими действиями машины (ЭВМ) или группы машин, объ-

3

единенных в сеть. Операционная система обеспечивает связь пользователей с ПК.

Однопроцессорные машины 40 – 50-х годов 20 века не были ни гибкими, ни эффективными. Выполнение программ требовало трудоемких приготовлений (помещение перфокарт в устройство для считывания и т.п.) и рассматривалось как отдельное действие.

Операционные системы были созданы для упрощения процесса установки программы и ускорения переходов между заданиями. Одним из самых ранних усовершенствований было разделение пользователя и оборудования, что исключало перемещение людей по комнате, в которой находилась машина. Нанимался оператор вычислительной машины, который управлял действиями машины. Если кто-то хотел, чтобы была выполнена некоторая программа, он должен был предоставить ее оператору вместе с данными и специальными указаниями по ее исполнению, а затем вернуться позже за результатами. В свою очередь оператор загружал эти материалы в запоминающее устройство машины, откуда операционная система могла их извлечь и выполнить программу. Такая организация вычисления стала началом пакетной обработки данных, когда все задачи собираются в один пакет, а затем выполняются без дальнейшего участия пользователя.

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

Главным недостатком обычной пакетной обработки является то, что пользователь не имеет доступа к программе после того,

4

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

Для удовлетворения этих потребностей были разработаны операционные системы, которые позволяли вести диалог с пользователем во время выполнения программы через отдаленный терминал или рабочую станцию. Этот процесс называется интерактивной, или диалоговой, обработкой данных. Интерак-

тивные операционные системы требуют, чтобы время, затра-

чиваемое машиной на выполнение задач, было совместимо с действиями аппаратных средств. Для решения таких задач используется обработка данных в реальном времени.

Если бы интерактивные системы единовременно обслуживали только одного пользователя, то обработка данных в реальном времени не представляла бы никаких трудностей. Но компьютеры были дорогими, поэтому с каждой машиной работали несколько пользователей. Следовательно, как правило, несколько пользователей одновременно нуждались в интерактивных услугах, и обработка в реальном времени была проблемой. Если операционная система в режиме обслуживания нескольких пользователей следует дисциплине последовательного выполнения заданий, то только один пользователь может работать в режиме реального времени.

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

5

рой смене исполняемых заданий создается эффект выполнения нескольких заданий одновременно. В зависимости от типа заданий ранние системы с разделением времени могли обслуживать в реальном времени одновременно до 30 пользователей.

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

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

цессорная операционная система). С помощью сети пользова-

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

Сети представляют собой многопроцессорные системы, объединяющие компьютеры, каждый из которых может содержать только один центральный процессор. Другие многопроцессорные системы представляют собой отдельные компьютеры, содержащие несколько процессоров. [1]

1.4.3. Компоненты операционной системы.

Часть операционной системы, которая определяет интерфейс между операционной системой и пользователем, называется оболочкой. Задача оболочки состоит в том, чтобы взаимодействовать с пользователем машины. Современные оболочки выполняют эту задачу с помощью графического пользовательского интерфейса, в котором объекты, такие как файлы и программы, представлены на экране компьютера в виде значков. Эти системы позволяют пользователям отдавать команду одним щелчком мыши на значке. Более ранние оболочки общались с пользователем с помощью текстовых сообщений, которые вводились с клавиатуры и отображались на экране.

6

Хотя оболочка операционной системы играет важную роль в обеспечении функциональных возможностей машины, она все же является просто интерфейсом между пользователем и основным компонентом операционной системы. Разделение на оболочку и внутреннюю часть операционной системы (ядро) подчеркивается тем фактом, что некоторые системы позволяют пользователю самому выбирать оболочку, с которой ему удобно работать. Например, пользователи операционной системы UNIX имеют возможность выбирать среди разных оболочек. Ранние версии Мicrosoft Windows были, в сущности, оболочками замещения для MS-DOS.

Графический интерфейс. Главным компонентом современного графического пользовательского интерфейса является программа управления окнами (window manager), которое размещает окна на экране компьютера и отслеживает, какому приложению принадлежит данное окно. Когда приложению нужно что-то вывести на экран, оно извещает об этом программу управления окнами, которая и помещает необходимое изображение в окно данного приложения. Точно так же, когда пользователь щелкает кнопкой мыши, именно программа управления окнами вычисляет местоположение указателя на экране и сообщает соответствующему приложению о совершенном действии.

Ядро операционной системы содержит программы, обеспечивающие функционирование компьютера:

1)программа управления файлами (распределяет доступ к файлам и пространство на диске для создания новых файлов),

2)драйвера устройств (преобразуют общие запросы в запросы понятные конкретным устройствам),

3)модуль управления памятью (распределяет пространство памяти),

4)планировщик (распределяет пространство в таблице процессов),

5)диспетчер (распределяет кванты времени).

Программа управления файлами (file manager) — функци-

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

7

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

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

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

Принцип организации файловой системы в семействах операционных систем MS DOS и Windows - табличный. Поверхность диска рассматривается как трехмерная матрица, измерениями которой являются номера поверхности, цилиндра и сектора. Данные о том, в каком месте диска записан тот или иной файл, хранятся в системной области диска в специальных таблицах размещения файлов (FAT-таблицах). Файловая система определяет способы организации и средства обслуживания файловой структуры, преобразуя FAT-таблицы в иерархическую структуру для обеспечения быстрого и удобного доступа к данным, простого и понятного пользователю способа задания адреса данных. Операции, выполняемые операционной системой по обслуживанию файловой структуры: 1) создание файлов и присвоение им имен; 2) создание каталогов и присвоение им имен; 3) переименование файлов и каталогов; 4) копирование и перемещение

8

файлов и каталогов; 5) удаление файлов и каталогов; 6) навигация по файловой структуре с целью доступа к заданному файлу, каталогу; 7) управление атрибутами файлов, которые определяют степень доступа к файлу: R (Read only) — только для чтения, Н (Hidden) — скрытый, S (System) — системный файл, A (Archive) — архивированный файл.

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

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

9

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

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

Также в ядро операционной системы входят планировщик и диспетчер. Они выполняют задачи, связанные с координацией процессов. В системах с разделением времени планировщик определяет, какие действия будут выполняться, а диспетчер распределяет кванты времени между этими действиями. Планировщик ведет учет процессов, которые протекают в данный момент, записывает новые и удаляет уже законченные.

Запуск операционной системы осуществляется с помощью процедуры, которая называется начальной загрузкой и выполняется машиной каждый раз при включении. Зачем нужна эта процедура?

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

10

того чтобы обеспечить наличие нужной программы, эта часть памяти построена так, что ее содержимое не изменяется. Такую память называют постоянным запоминающим устройством ПЗУ. Когда код помещается в ПЗУ, он остается там независимо от того, включена ЭВМ или выключена.

Для самозагрузки машины ПЗУ содержит ячейки памяти, в которых центральный процессор ожидает найти команды при включении машины. Небольшая программа, хранящаяся в этой области, называется программой начальной загрузки. Она вы-

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

Координирование действий машины. Выполнение про-

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

В обычном ПК с разделением времени множество процессов конкурируют за кванты времени. Операционная система координирует все процессы с помощью планировщика и диспетчера.

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

Соседние файлы в папке C++ программы НОВИКОВ