Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Объекты, свойства, методы, события




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

Здесь важнейшее значение имеют принципы инкапсуляции и скрытия данных.

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

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

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

Во-вторых, необходимо изолировать внешние объекты от особенностей внут­ренней реализации данных. Для внешних потребителей данных должен быть до­ступен только пользовательский интерфейс – описание того, какие имеются дан­ные и функции и как их использовать. А внутренняя реализация – это дело разра­ботчика объекта. При таком подходе разработчик может в любой момент модерни­зировать объект, изменить структуру хранения и форму представления данных, но, если при этом не затронут интерфейс, внешний потребитель этого даже не за­метит. Следовательно, во внешней программе и в поведении пользователя ничего не придется менять.

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



1. Управление задачами и памятью
в операционных системах

Основные понятия

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

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

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

Системное программное обеспечение может быть разделено на следующие пять групп:

1. Операционные системы.

2. Системы управления файлами.

3. Интерфейсные оболочки для взаимодействия пользователя с ОС и программ­ные среды.

4. Системы программирования.

5. Утилиты.

Рассмотрим вкратце эти группы системных программ.

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

В данном учебном курсе нас прежде всего будут интересовать многозадачные ОС.

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

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

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

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

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

Понятие «вычислительный процесс» (или просто – «процесс») является одним из основных при рассмотрении операционных систем.

Процесс – последовательность операций при выполнении программы или ее части вместе с используемыми данными.

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

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

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

Вычислительный процесс может включать в себя несколько задач. Термин «задача» в некоторых операционных системах совпадает с понятием «процесс».

Процессорное время и оперативная память являются основны­ми ресурсами в случае реализации мультипрограммных вычислений.

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

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

Концептуально процессор рассматривается в двух аспектах: во-первых, он является носителем данных и, во-вторых, он выполняет операции, связанные с их обработкой.

Оперативная память – память, непосредственно связанная с центральным процессором вычислительной системы.

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

Операционная система выполняет следующие основные функции, связан­ные с управлением задачами:

• создание и удаление задач;

• планирование процессов и диспетчеризация задач;

• синхронизация задач, обеспечение их средствами коммуникации.

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

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

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

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

Долгосрочное планирование осуществляется гораздо реже, чем задача текущего распределения ресурсов между уже выполняющимися процессами и потоками. Основное отличие между долгосрочным и краткосрочным планировщиками за­ключается в частоте запуска: краткосрочный планировщик, например, может за­пускаться каждые 30 или 100 мс, долгосрочный – один раз за несколько минут (или чаще; тут многое зависит от общей длительности решения заданий пользо­вателей).

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

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

Планирование и диспетчеризация процессов и задач

Стратегии планирования

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

• по возможности заканчивать вычисления (вычислительные процессы) в том же самом порядке, в котором они были начаты;

• отдавать предпочтение более коротким процессам;

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

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

Поток – последовательность выполнения операторов в программе.





Поделиться с друзьями:


Дата добавления: 2016-11-18; Мы поможем в написании ваших работ!; просмотров: 770 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Человек, которым вам суждено стать – это только тот человек, которым вы сами решите стать. © Ральф Уолдо Эмерсон
==> читать все изречения...

2258 - | 2106 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.