Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Загрузчик операционной системы. Драйверы. Программные кодеки. Сервисные программы (утилиты)

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

Загрузчик операционной системы:

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

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

- загружает ядро операционной системы в ОЗУ. Загрузка ядра операционной системы не обязательно происходит с винчестера (далее НЖМД). Загрузчик может получать ядро по сети. Ядро может храниться в ПЗУ или загружаться через последовательные интерфейсы (это может пригодиться на ранней стадии отладки создаваемой компьютерной системы);

- формирует параметры, передаваемые ядру операционной системы (например, ядру Linux передаются параметры, указывающие способ подключения корневой файловой системы);

- передаёт управление ядру операционной системы.

На компьютерах архитектуры IBM PC запуск загрузчика осуществляется программным обеспечением BIOS, записанной в ПЗУ компьютера, после успешного окончания процедуры POST. Опишем процедуру, с помощью которой происходит загрузка с НЖМД IBM PC: BIOS производит чтение 512 байт первого сектора НЖМД в ОЗУ по адресу 0x07c0:0x0000, затем прочитанному коду передаётся управление. Этот код читает и анализирует таблицу разделов жёсткого диска, а затем, в зависимости от вида загрузчика, либо передаёт управление загрузочному коду активного раздела жёсткого диска, либо самостоятельно загружает ядро с диска в оперативную память и передаёт ему управление.

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

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

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

Кодек (англ. codec – сокр. от coder/decoder (кодировщик/декодировщик) или compressor/decompression) – устройство или программа, способная выполнять преобразование потока данных или сигнала.

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

Большинство кодеков для звуковых и визуальных данных использует сжатие с потерями, чтобы получать приемлемый размер готового (сжатого) файла. Существуют также кодеки, сжимающие без потерь (англ. lossless codec’s), но для большинства применений, малозаметное улучшение качества не оправдывает значительного увеличения объема данных. Почти единственное исключение – ситуация, когда данные будут подвергаться дальнейшей обработке: в этом случае повторяющиеся потери на кодировании/декодировании окажут серьезное влияние на качество.

Утилиты - это программы вспомогательного назначения, позволяющие существенно повысить эффективность использования ЭВМ, расширяя стандартные возможности ОС.

К ним относятся средства сжатия и защиты данных, средства диагностики, средства контроля (мониторинга), мониторы установки, коммуникационные программы.

Примеры утилит:

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

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

- полным, когда диск новый или на нем появились «сбойные» участки. Эта процедура иногда позволяет восстановить работоспособность диска;

- с записью системных программ. Такой диск в последствии можно будет использовать как системный.

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

Проверка диска на наличие ошибок. В процессе работы на поверхности дисков возможно появление сбойных мест, куда невозможно записать данные. Для исправления таких ошибок необязательно форматировать диск. Можно воспользоваться утилитой «Проверка диска».

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

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

Антивирусные программы находят и уничтожают компьютерные вирусы (антивирус Касперского, Norton AntiVirus и др.).

Средства диагностики, контроля (мониторинга) следят за работоспособностью аппаратной части компьютера.

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

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

Вопрос 3. Классификация систем программирования (системы программирования).

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

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

Низкого уровня:

- машинный: двоичный язык, шестнадцатеричный язык;

- символический язык: язык Ассемблера, язык Макроассемблера.

Двоичный язык – непосредственно машинный язык. В настоящее время такие языки программистами не применяются.

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

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

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

Высокого уровня:

- универсальные: Фортран, Basic, Алгол, Кобол, ПЛ1,Паскаль, Ада;

- специализированные.

Фортран – первый и распространенный язык,был разработан в 1956 г. сотрудником формы IBM Дж.Бекусом (математик). Язык за несколько лет совершенствуется и в 1966 г. – Фортран – 66 –стандартизирован Американским национальным институтом стандартов (ANSI). Всем хорош Фортран, но все – таки сложен для многих пользователей, которым желательно прежде всего простота. И такой язык был изобретен на базе Фортрана – это Бейсик.

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

3.1 Стили программирования. (классификация системы программирования):

- процедурный. Процедурное (императивное) программирование является отражением архитектуры традиционных ЭВМ, которая была предложена Д. фон Нейманом в40–х г.г.

- функциональный. “Функциональное (аппликативное) программирование – это способ составления программ, в которых единственным действием является вызов функции…”

- логический. программирование в терминах логики– создан в 1972 г. французским ученым А. Кольмероэ,первоначально предназначен для работы с естественными языками.

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

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

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

Среди процедурных языков выделяют в свою очередь структурные и операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д. В операционных языках для этого используются несколько операций. Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1. Среди операционных известны Фортран, Бейсик, Фокал.

Непроцедурное (декларативное) программирование появилось в начале 70-х годов 20 века, но стремительное его развитие началось в 80-е годы, когда был разработан японский проект создания ЭВМ пятого поколения, целью которого явилась подготовка почвы для создания интеллектуальных машин. К непроцедурному программированию относятся функциональные и логические языки.

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

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

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

Языки описания сценариев, такие как Perl, Python, Rexx, Tcl и языки оболочек UNIX, предполагают стиль программирования, весьма отличный от характерного для языков системного уровня. Они предназначаются не для написания приложения с нуля, а для комбинирования компонентов, набор которых создается заранее при помощи других языков. Развитие и рост популярности Internet также способствовали распространению языков описания сценариев. Так, для написания сценариев широко употребляется язык Perl, а среди разработчиков Web-страниц популярен JavaScript.

Алгол - создан в 1960 г. (поэтому его иногда называют Алгол – 60). Развитием языка Алгол – 60 является Алгол – 68, созданный в Западной Европе Международной Федерацией. Версия Алгол – 68 обладала богатым набором средств, высокой строгостью и стройностью, но и большой сложностью. Ее реализация затянулась на долгие годы, в результате чего время было упущено и данный язык в некотором смысле, пережил самого себя – устарел, практически прекратив свое существование.

Кобол – общий язык, ориентированный на экономические применения, на обработку коммерческой информации, разработан в 1960 г. для применения в экономике и за период своего существования, как и многие языки, претерпевший ряд изменений. В настоящее время используются стандарты COBOL – 74, 85.

ПЛ1 (PL/1) – этот язык является попыткой совместить все лучшее, что есть в Алголе и Коболе.Был создан на фирме IBM в 1966 – 67 г.г. в настоящее время практически не используется.

ПАСКАЛЬ (PASCAL) - этот язык является прямым развитием направления Алгола, он стал одним из наиболее популярных процедурных языков программирования среди прикладных программистов. Он разработан в 1970 г. швейцарским специалистом в области вычислительной техники профессором Н. Виртом, назван в честь французского математика Блеза Паскаля и, по замыслу автора, предназначался для обучения программированию. В настоящее время существует 3 PASCAL– стандарта:

британский стандарт BS6192: 1982 г.,
международный стандарт ISO 7185:1983г., идентичный предыдущему;
ANSI – стандарт

АДА – разработан в 1979 г. ведущими специалистами в области программирования по заказу Министерства обороны США для использования во встроенных системах с управляющими ЭВМ, что требует поддержки режима реального времени. Язык назван в честь Августы Лады Лавлейс, она по праву считается первым в мире программистом. АДА является продолжением направления Алгола. Язык отталкивает своей громоздкостью, хотя с 1986 г. он стал обязательным для многих военных приложений в США.

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

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

Modula – 2 – 1979 г. – создан Н. Виртом, но подобно С, в нем присутствуют низкоуровневые средства.

APL – был создан Иверсоном в 1969 г. и сразу получил широкое распространение. Основное его назначение – обработка массивов.

LOGO (ЛОГО) – с целью обучения детей в 1960 г.разработан и используется в настоящее время. Он отличается простотой, но весьма богатыми возможностями, среди которых процедуры,графическое средство и др. Создали С. Пейпер с коллегами из Массачусетского технологического института (США) – управление “черепахой” –программной моделью малого робота.

GPSS – общецелевая система моделирования

Функциональное программирование.

LISP (ЛИСП) (обработка списков) – самый первый функциональный язык, разработан и реализован группой авторов под руководством пионера в области искусственного интеллекта Джоном Маккарти в Массачусетском технологическом институте в 1959 г. для исследования по проблеме“искусственного интеллекта”.

Языки: VALID, VAL, ID, LUCID, PLANIVER, CONNIVER, ML.

Логическое программирование.

Язык PROLOG

Объектно – ориентированное программирование.

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

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

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

Инкапсуляция — означает, что объекты скрывают детали своей работы. Инкапсуляция позволяет разработчику объекта изменять внутренние принципы его функционирования, не оказывая никакого влияния на пользователя объекта. В VB этот принцип реализуется, в основном, за счет применения описаний Private и Public.

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

Полиморфизм — многие объекты могут иметь одноименные методы, которые могут выполнять разные действия для разных объектов. Например, оператор "+" для числовых величин выполняет сложение, а для текстовых — склеивание.

В ООП центральным является понятие класса. Класс – это шаблон, по которому создаются объекты определенного типа. Класс объединяет в себе данные и методы их обработки.

Объекты — это экземпляры определенного класса. Например, кнопки или текстовые поля, устанавливаемые на форме являются экземплярами соответствующих стандартных классов VB.

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

Элементы управления — это объекты, используемые при разработке пользовательского интерфейса.

объектно-ориентированные языки, которые развиваются и в наше время. Большинство из таких языков — развитые версии процедурных и проблемных языков, но программирование с помощью языков такой группы более наглядно и просто. Среди таких языков можно выделить следующие:
а) Visual Basic (Basic); б) Delphi (Pascal); в) Visual Fortran (Fortran); г) С++ (С); д) Prolog++ (Prolog).

<== предыдущая лекция | следующая лекция ==>
Операционные системы семейства Майкрософт | Машинный язык
Поделиться с друзьями:


Дата добавления: 2014-01-15; Просмотров: 656; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.047 сек.