Саҳифаи шахсӣ. Бо сабаби ба корҳои илмӣ машғул шудан, сайт муваққатан бемавод мемонад.
+992(918)
Душанбе - Шанбе аз 10:00 то 18:00
Файлхо
23.09.2013
Синий экран Windows
23.09.2013

https://www.dropbox.com/s/icysumjh5j1nb6i/%D0%A1%D0%B8%D0%BD%D0%B8%D0%B9%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%20%D0%A5%D0%A0.pdf?m

 

https://www.dropbox.com/s/icysumjh5j1nb6i/%D0%A1%D0%B8%D0%BD%D0%B8%D0%B9%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%20%D0%A5%D0%A0.pdf

Корхои лаборатории №1  то №4 - https://www.dropbox.com/sh/m3bm2umcqi2rs4f/Am1aF8iT1P

Лексияхо - https://www.dropbox.com/sh/jqe2ngh3d0g42pd/EWPSaXzJEf

Лекция №2

Лекция 2. Основные сведения об ОС. ОС как расширенная машина. ОС в качестве менеджера ресурсов. Обзор аппаратного обеспечения компьютера. Место ОС в структуре программного обеспечения. (2-часа) 

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

ОС выполняет след. действия:

  • Управление памятью;
  • Управление ввод/вывода
  • Управление файловой системы
  • Диспетчеризация процесса
  • Защита и учет использования ресурса и др.

Драйвер- предназначена для управления устройствами в-вывода, памяти а также для подключения к ЭВМ новых внешних устройств.  

 

Программы, с которыми взаимодействуют пользова­тели, обычно называются оболочкой, когда они основаны на применении текста, и графическим пользовательским интерфейсом — GUI (Graphical User Interface), когда в них используются значки, — фактически не являются частью операционной системы, хотя используют эту систему в своей работе.

Схематично основные рассматриваемые здесь компоненты представлены на рис. 1.1. В нижней части рисунка показано аппаратное обеспечение. Оно состоит из микросхем, плат, дисков, клавиатуры, монитора и им подобных физических объектов. Над аппаратным обеспечением находится программное обеспечение. Большинство компьютеров имеет два режима работы: режим ядра и режим пользо­вателя. Операционная система — наиболее фундаментальная часть программного обеспечения, работающая в режиме ядра (этот режим называют еще режимом супервизора). В этом режиме она имеет полный доступ ко всему аппаратному обеспечению и может задействовать любую инструкцию, которую машина в со­стоянии выполнить. Вся остальная часть программного обеспечения работает в режиме пользователя, в котором доступно лишь подмножество инструкций машины. В частности, программам, работающим в режиме пользователя, запре­щено использование инструкций, управляющих машиной или осуществляющих операции ввода-вывода — I/O (Input/Output). К различиям между режимами ядра и пользователя мы еще не раз вернемся на страницах этой книги.

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

 

 

 

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

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

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

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

Операционные системы отличаются от пользовательских программ (то есть приложений) не только местоположением. Их особенности — довольно большой объем, сложная структура и длительные сроки использования. Исходный код операционных систем типа Linux или Windows занимает порядка пяти миллионов строк. Чтобы представить себе этот объем, давайте мысленно распечатаем пять миллионов строк в книжном формате, по 50 строк на странице и по 1000 страниц в каждом томе (что больше этой книги). Чтобы распечатать такое количество кода, принадлежащего операционной системе, понадобится 100 томов, а это практиче­ски целая книжная полка. Можете себе представить, что вы получили задание по поддержке операционной системы и в первый же день ваш начальник подвел вас к книжной полке и сказал: «Вот это все нужно выучить». И это касается только той части, которая работает в режиме ядра. Пользовательские программы — GUI, библиотеки и основные приложения (вроде Windows Explorer) — легко могут увеличить количество этих томов в 10 или 20 раз.

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

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

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

Центральный процессор (ЦП) — это «мозг» компьютера. Он выбирает команды из памяти и выполняет их. Обычный цикл работы центрального процессора выглядит так: выборка из памяти первой команды, ее декодирование для определения ее типа и операндов, выполнение этой команды, а затем выборка, декодирование и выпол­нение последующих команд. Этот цикл повторяется до тех пор, пока не закончится программа. Таким образом осуществляется выполнение программ.

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

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

Следующим очевидным шагом является дублирование не только функциональ­ных блоков, но и части управляющей логики. Такие свойства, присущие процессору Pentium 4 и некоторым другим микропроцессорам, называются многопоточностью, или гиперпоточностью (hyperthreading по версии Intel). В первом приближении эта технология позволяет процессору сохранять состояние двух различных потоков и осуществлять переключения между ними за наносекунды. (Поток является разно- видностью легковеского процесса, который, в свою очередь, является выполняющейся программой; подробности мы рассмотрим в главе 2.) Например, если одному из про­цессов нужно прочитать слово из памяти (что занимает несколько тактов), многопо­точный процессор может переключиться на другой поток. Многопоточность не пред­лагает настоящей параллельной обработки данных. Одновременно работает только один процесс, но время переключения между процессами сведено до наносекунд.

Многопоточность оказывает влияние на операционную систему, поскольку каждый поток предстает перед ней как отдельный центральный процессор. Пред­ставим себе систему с двумя реальными процессорами, у каждого из которых организовано по два потока. Операционной системе будут видны четыре процес­сора. Если в какой-то момент времени у операционной системы найдутся задачи для загрузки только двух процессоров, она может непреднамеренно направить оба потока на один и тот же реальный процессор, а другой будет в это время про­стаивать. Эффективность такого режим работы намного ниже, чем использование по одному потоку на каждом реальном центральном процессоре. В архитектуре преемника Pentium 4, процессора Core (и Core 2), гиперпоточность отсутствует, но Intel объявила, что следующие за Core процессоры вновь обретут это свойство.

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

 

Память

 

Регистры – это небольшой имеющийся расположение в процессоре

 

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

Затем следует кэш-память, которая управляется главным образом аппаратурой. Оперативная память разделяется на кэш-строки, обычно по 64 байт, с адресами от 0 до 63 в кэш-строке 0, адресами от 64 до 127 в кэш-строке 1, и т. д. Наиболее интенсивно используемые кэш-строки оперативной памяти сохраняются в высоко­скоростной кэш-памяти, находящейся внутри процессора или очень близко к нему. Когда программе нужно считать слово из памяти, аппаратура кэша проверяет, нет ли нужной строки в кэш-памяти.

Следующей в иерархии, изображенной на рис. 1.9, идет оперативная память. Это главная рабочая область системы памяти машины. Оперативную память часто называют ОЗУ (оперативное запоминающее устройство) или памятью с произ­вольным доступом (RAM, Random Access Memory). Ветераны порой называют ее core memory — памятью на магнитных сердечниках, поскольку в 50-е и 60-е годы в оперативной памяти использовались крошечные намагничиваемые ферритовые сердечники. В настоящее время блоки памяти имеют объем от сотен мегабайт до нескольких гигабайт, и этот объем стремительно растет. Все запросы процессора, которые не могут быть удовлетворены кэш-памятью, направляются к оперативной памяти.

Дополнительно к оперативной памяти многие компьютеры оснащены неболь­шой по объему неизменяемой памятью с произвольным доступом — постоянным запоминающим устройством (ПЗУ), оно же память, предназначенная только для чтения, — ROM (Read Only Memory). В отличие от ОЗУ она не утрачивает свое содержимого при отключении питания, то есть является энергонезависимой. ПЗУ программируется на предприятии-изготовителе и впоследствии не подлежит из­менению. Эта разновидность памяти характеризуется высоким быстродействием и дешевизной. На некоторых компьютерах в ПЗУ размещается начальный за­грузчик, используемый для их запуска. Такой же памятью, предназначенной для осуществления низкоуровневого управления устройством, оснащаются некоторые контроллеры ввода-вывода.

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

Флэш-память также обычно используется как носитель информации в пор­тативных электронных устройствах. Если упомянуть лишь два ее применения, то она служит «пленкой» в цифровых фотоаппаратах и «диском» в переносных музыкальных плеерах. По быстродействию флэш-память занимает промежуточное положение между ОЗУ и диском. Также, в отличие от дисковой памяти, если флэш-память стирается или перезаписывается слишком часто, она приходит в негодность.

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

1.3.4. Диски

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

Жесткий диск состоит из одной или нескольких металлических пластин, вра­щающихся со скоростью 5400, 7200 или 10 800 оборотов в минуту. Механический привод поворачивается на определенный угол над пластинами, подобно звуко­снимателю старого проигрывателя виниловых пластинок на 33 оборота в минуту. Информация записывается на диск в виде последовательности концентрических окружностей. В каждой заданной позиции привода каждая из головок может счи­тывать кольцеобразный участок, называемый дорожкой. Из совокупности всех дорожек в заданной позиции привода составляется цилиндр.

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

 

Ввод-вывод

 

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

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

1.3.8. Загрузка компьютера

В кратком изложении загрузка компьютера на базе процессора Pentium проис­ходит следующим образом. У каждого компьютера Pentium есть материнская плата (которую теперь в США, в результате распространения политкорректности на компьютерную индустрию, называют родительской платой)1. На материнской плате находится программа, которая называется базовой системой ввода-вывода — BIOS (Basic Input Output System). BIOS содержит низкоуровневое программное обеспечение ввода-вывода, включая процедуры считывания состояния клавиатуры, вывода информации на экран и осуществления, ко всему прочему, дискового ввода-вывода. В наши дни эта программа хранится в энергонезависимой флэш-памяти с произвольным доступом, которая может быть обновлена операционной системой в случае обнаружения в BIOS различных ошибок.

При начальной загрузке компьютера BIOS начинает работать первой. Сначала она проверяет объем установленной на компьютере оперативной памяти и на­личие клавиатуры, а также установку и нормальную реакцию других основных устройств. Все начинается со сканирования шин ISA и PCI с целью определения всех подключенных к ним устройств. Некоторые из этих устройств унаследованы из прошлого (то есть разработаны еще до создания технологии plug and play). Они имеют фиксированные уровни прерываний и адреса ввода-вывода (возможно, установленные с помощью переключателей или перемычек на карте ввода-вывода, но не подлежащие изменению со стороны операционной системы). Эти устройства регистрируются. Устройства, отвечающие стандарту plug and play, также реги­стрируются. Если присутствующие устройства отличаются от тех, которые были зарегистрированы в системе при ее последней загрузке, то производится конфи­гурирование новых устройств.

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

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