Главная » Просмотр файлов » Гордеев А.В. Операционные системы (2-е изд., 2004)

Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 80

Файл №1186250 Гордеев А.В. Операционные системы (2-е изд., 2004) (Гордеев А.В. Операционные системы (2-е изд., 2004)) 80 страницаГордеев А.В. Операционные системы (2-е изд., 2004) (1186250) страница 802020-08-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 80)

В обеихрассматриваемых операционных системах существуют разные методы работы сфайловой системой и управления процессами. В данном случае рассматриваетсятолько один, но наиболее характерный для соответствующего интерфейса API ва­риант.Для того чтобы было удобнее сравнивать эту (листинг 9.1) и следующую (лис­тинг 9.2) программы, а также учитывая, что задача не требует для своего решенияоконного интерфейса, в тексте использованы только те вызовы API, которые незатрагивают графический интерфейс. Конечно, нынче редко какое приложение неиспользует возможностей GUI, но зато в нашем случае сразу можно увидеть раз­ницу в организации параллельной работы запускаемых вычислений.Листинг 9 . 1 .

Текст программы для Windows (WinAPI)finclude <windows.h>#include <stdio.h>finclude <stdlib.h>// Название: processFile// Описание: исполняемый код потока// Входные параметры: IpFlleName - имя файла для обработки// Выходные параметры: нетDWORD processFile(LPVOID IpFileName ) {HANDLE handle; // описатель файлаDWORD numRead. total = 0:char buf;// запрос к ОС на открытие файла (только для чтения)handle = CreateFile( (LPCTSTR)IpFileName. GENERIC_READ.FILE_SHARE_READ, NULL.

OPENJXISTING, FILE_ATTRIBUTE_NORMAL. NULL);// цикл чтения до конца файлаdo {продолжение£Глава 9 , Архитектура операционных систем308Листинг 9.1 (продолжение)II чтение одного символа из файлаReadFilet handle, (LPVOID) &buf. 1, SnumRead. NULL);if (buf == 0x20) total++:} while ( numRead > 0);f p r i n t f ( stderr, "(ThreadID: *Lu), File %s. spaces = %6\n\GetCurrentThreadldO.

lpFileName. t o t a l ) :// закрытие файлаCloseHandle( handle);return(O);// Название: main// Описание: главная программа// Входные параметры: список имен файлов для обработки// Выходные параметры: нетint maindnt argc. char *argv[]) {int i;DWORD pid;HANDLE hThrd[255];// массив ссылок на потоки// для всех файлов, перечисленных в командной строкеfor (i = 0: i< (argc-1): i++) {// запуск потока - обработка одного файлаhThrd[i] = CreateThread( NULL, 0x4000,(LPTHREAD_START_ROUTINE) processFile,(LPVOID) argv[i+l].

0, &pid);fprintf( stdout, "processFile started (HND=Xd)\n", hThrd[i]);// ожидание окончания выполнения всех запущенных потоковWaitForMultipleObjects( argc-1. hThrd, true. INFINITE);return(O);}Обратите внимание, что основная программа запускает потоки и ждет окончанияих выполнения.

Другими словами, мы имеем всего один вычислительный процесс,но используем мультизадачные возможности операционной системы.Листинг 9.2. Текст программы для Linux (POSIX API)#include <sys/types.h>finclude <sys/stat.h>#include <wait.h>#include <fcntl.h>finclude <stdio.h>// Название: processFile// Описание: обработка файла, подсчет кол-ва пробелов// Входные параметры: fileName - имя файла для обработки// Выходные параметры: кол-во пробелов в файлеi n t processFile( char *fileName) {int handle.

numRead, total = 0;Примеры программирования для разных интерфейсов API309char buf;// запрос к ОС на открытие файла (только для чтения)handle = open( fileName. 0_RDONLY):// цикл чтения до конца файлаdo {// чтение одного символа из файлаnumRead = read( handle. Sbuf. 1):if (buf == 0x20) total++;} while (numRead > 0);// закрытие файлаclose( handle);return( total);// Название: main// Описание: главная программа// Входные параметры: список имен файлов для обработки// Выходные параметры: нетint maindnt argc, char *argv[]) {int i.

pid, status;// для всех файлов, перечисленных в командной строкеfor (i = 1; i< argc; i++) {// запускаем дочерний процессpid = forkO;if (pid == 0) {// если выполняется дочерний процесс// вызов функции счета количества пробелов в файлеprintf( "(PID: %6). File %s.

spaces - Sd\n".getpidO. argv[ i]. processFile( argv[ i]));// выход из процессаexitO;}// если выполняется родительский процессelseprintf( "processFile started (pid=£d)\n", pid);}/Л ожидание окончания выполнения всех запущенных процессовif (pid != 0) while (wait(&status)>0);return;}Из листинга 9.2 видно, что здесь все вычисления имеют статус процессов, а не по­токов выполнения.

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

Один набор системных функций хорош дляи310Глава 9. Архитектура операционных системодного набора задач, другой — для иного набора задач. Тем более что, фактически,сейчас мы имеем существенно ограниченное множество интерфейсов API из-затого, что имеет место доминирование наиболее популярных операционных сис­тем и на их распространении в большей степени сказалась правильная маркетин­говая политика их создателей, а не достоинства и недостатки самих этих систем иих интерфейсов.Контрольные вопросы и задачи1. Что вы понимаете под архитектурой операционной системы?2.

Перечислите и поясните основные принципы построения операционных сис­тем.3. Для чего операционные системы используют несколько режимов работы про­цессора? Чем отличается супервизорный режим работы процессора от пользо­вательского? Как часто процессор переводится в супервизорный режим?4. Объясните принцип виртуализации. Имеется ли связь между принципом вир­туализации и принципом совместимости? Если имеется, то поясните, в чемона заключается?5.

Что такое ядро операционной системы? Расскажите об основных моментах,характерных для микроядерных ОС. Какие основные функции должно вы­полнять микроядро ОС?6. Перечислите основные требования, предъявляемые к операционным систе­мам в плане обеспечения информационной безопасности.7. Перечислите основные требования, предъявляемые к операционным систе­мам реального времени.8. Какие задачи возлагаются на интерфейс прикладного программирования (API)?9. Какими могут быть варианты реализации API? В чем заключаются достоин­ства и недостатки каждого варианта?10. Что такое библиотека времени выполнения (RTL)?11.

Что такое POSIX? Какими преимуществами обладают программы, созданныес использованием только стандартных функций, предусмотренных POSIX?Глава 10. Краткий обзорсовременныхоперационных системТеперь, после знакомства с основными понятиями, относящимися к операцион­ным системам, и изучения конкретных механизмов, реализующих известные ме­тоды организации вычислительных процессов, вкратце рассмотрим архитектурныеособенности современных операционных систем для персональных компьютеровтипа IBM PC.Прежде всего, отметим тот общеизвестный факт, что наиболее популярнымиявляются операционные системы семейства Windows компании Microsoft.

Этои Windows 95/98/МЕ, и Windows NT/2000, и новое поколение Windows XP/2003 — этим операционным системам посвящена отдельная глава (см. главу 11).Здесь же мы рассмотрим операционные системы, не относящиеся к продуктамMicrosoft, — это UNIX-подобные операционные системы Linux и FreeBSD, aтакже системы QNX и OS/2. При изучении известных всему миру систем с об­щим названием Linux и системы FreeBSD, по которым сейчас появляется не­мало монографий и учебников, упор будет сделан именно на основных архи­тектурных особенностях семейства UNIX, в абсолютном своем большинствеотносящихся ко всем UNIX-системам.

Система QNX была выбрана потому, чтоявляется наиболее известной и удачной операционной системой реального вре­мени. Операционную систему OS/2 мы рассмотрим последней. Хотя сейчас этасистема уже практически всеми забыта1, она была одной из первых полноцен­ных и надежных мультипрограммных и мультизадачных операционных системДля персональных компьютеров, в которой поддерживалось несколько опера­ционных сред.о настоящее время ее используют те организации, которые в свое время создали под нее свои прило­жения, вложив немалые средства. И поскольку система по-прежнему в основном неплохо выполня­ет свои функции, эти организации не спешат вкладывать деньги для переноса своих задач на новыеплатформы.31 2Глава 10.

Краткий обзор современных операционных системСемейство операционных систем UNIXUNIX является исключительно удачным примером реализации простой мульти­программной и многопользовательской операционной системы. В свое время онапроектировалась как инструментальная система для разработки программногообеспечения. Своей уникальностью система UNIX обязана во многом тому обсто­ятельству, что была, по сути, создана всего двумя разработчиками1, которые дела­ли ее исключительно для себя и первое время использовали на мини-ЭВМ с оченьскромными вычислительными ресурсами. Первая версия этой системы занималавсего около 12 Кбайт и могла работать на компьютерах с очень небольшим объ­емом оперативной памяти.

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

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6549
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее