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

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

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

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

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

cmd, mstatbuf);334Глава 10, Краткий обзор современных операционных системРазделяемая памятьДля работы с разделяемой памятью используются четыре системных вызова:Q shmget — создает новый сегмент разделяемой памяти или находит существую­щий сегмент с тем же ключом;Q shmat — подключает сегмент с указанным дескриптором к виртуальной памятиобращающегося процесса;Q shmdt — отключает от виртуальной памяти ранее подключенный к ней сегментс указанным виртуальным адресом начала;• shmctl — служит для управления разнообразными параметрами, связанными ссуществующим сегментом.После того как сегмент разделяемой памяти подключен к виртуальной памятипроцесса, процесс может обращаться к соответствующим элементам памяти с ис­пользованием обычных машинных команд чтения и записи, не прибегая к допол­нительным системным вызовам.Синтаксис системного вызова shmget выглядит следующим образом:shmid = shmget(key, size, flag):Параметр size определяет желаемый размер сегмента в байтах.

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

Аналогично, при выполнении после­днего системного вызова отключения сегмента от виртуальной памяти соответ­ствующая основная память освобождается.Подключение сегмента к виртуальной памяти выполняется путем обращения Ксистемному вызову shmat:virtaddr = shmatdd, addr. flags):Здесь id — ранее полученный дескриптор сегмента; addr — требуемый процессувиртуальный адрес, который должен соответствовать началу сегмента в виртуаль­ной памяти. Значением системного вызова является реальный виртуальный адресначала сегмента (его значение не обязательно совпадает со значением параметраaddr). Если значением addr является нуль, ядро выбирает подходящий виртуаль­ный адрес начала сегмента.Для отключения сегмента от виртуальной памяти используется системный вызовshmdt:shmdt(addr);Семейство операционных с и с т е м UNIX335Здесь addr — виртуальный адрес начала сегмента в виртуальной памяти, ранее по­лученный с помощью системного вызова shmat.

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

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

Отсюда и соответствующее название — вызов уда­ленной процедуры (Remote Procedure Call, RPC). Другими словами, процессобращается к процедуре, которая не принадлежит данному процессу. Она можетнаходиться даже на другом компьютере. Операционная система UNIX по своей«идеологии» идеально подходит для того, чтобы быть сетевой операционной сис­темой, на основе которой можно создавать распределенные системы и организо­вывать распределенные вычисления.

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

Если в случае обращения к процедуре,расположенной на том же компьютере, процесс общается с ней через стек или об­щие области памяти, то в случае удаленного вызова передача параметров процеду­ре превращается в передачу запроса по сети. Соответственно, и получение резуль­тата также осуществляется с помощью сетевых механизмов.336Глава 10. Краткий обзор современных операционных системВызов удаленных процедур включает следующие шаги [39].1.

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

После выполнения осуществляется обратнаяпередача.Операционная система LinuxLinux — это современная UNIX-подобная операционная система для персональ­ных компьютеров и рабочих станций, удовлетворяющая стандарту POSIX.Как известно, Linux — это свободно распространяемая версия UNIX-систем, кото­рая первоначально разрабатывалась Линусом Торвальдсом (torvalds@kruuna.helsinki.fi) в университете Хельсинки (Финляндия). Он предложил разрабатывать еесовместно и выдвинул условие, согласно которому исходные коды являются от­крытыми, любой может их использовать и изменять, но при этом обязан оставитьоткрытым и свой код, внесенный в тот или иной модуль системы.

Все компонентысистемы, включая исходные тексты, распространяются с лицензией на свободноекопирование и установку для неограниченного числа пользователей.Таким образом, система Linux была создана с помощью многих программистов и эн­тузиастов UNIX-систем, общающихся между собой через Интернет. К данномупроекту добровольно подключились те, кто имеет достаточно навыков и способ­ностей развивать систему. Большинство программ Linux разработаны в рамкахпроекта GNU из Free Software Foundation (Кембридж, штат Массачусетс). Но в неговнесли свою лепту и многие программисты со всего мира.Изначально система Linux создавалась как «самодельная» UNIX-подобная реали­зация для машин типа IBM PC с процессором i80386.

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

Это означает, что одновре­менно много пользователей могут работать на одной машине, параллельно выпол­няя множество программ. Поскольку при работе за персональным компьютеромпрактически никто не подключает к нему дополнительные терминалы (хотя это вСемейство операционных систем UNIX337принципе возможно), пользователь просто имитирует работу за несколькими тер­миналами. В этом смысле можно говорить о виртуальных терминалах. По умолча­нию пользователь регистрируется на первом терминале. При этом он получаетпримерно следующее сообщение:Mandrake Linux release 9.0 (dolphin) for i586Kernel 2.4.16-16mdk on an 1686 /ttylVienna login:Здесь во второй строке слово ttyl означает, что пользователь сейчас взаимодей­ствует с системой через первый виртуальный терминал.

Собственно работа на немвозможна только после аутентификации — ввода своих учетного имени и пароля.При желании открыть второй или последующий сеанс работы на соответствую­щем терминале, пользователь должен нажать комбинацию клавиш Alt+Fi, где iобозначает номер функциональной клавиши и одновременно номер соответству­ющего виртуального терминала. Всего Linux поддерживает до семи терминалов,причем седьмой терминал связан с графическим режимом работы и использова­нием одного из оконных менеджеров.

Однако если пользователь работает в графи­ческом режиме, то для перехода в один из алфавитно-цифровых терминалов сле­дует воспользоваться комбинацией клавиш CtrL+Alt+Fi. В каждом сеансепользователь может запускать свои задачи.Система Linux достаточно хорошо совместима с рядом стандартов для UNIX (на­сколько можно говорить о стандартизации UNIX) на уровне исходных текстов,включая IEEE POSIX.l, System V и BSD. Она и создавалась с расчетом на такуюсовместимость. Большинство свободно распространяемых через Интернет про­грамм для UNIX может быть откомпилировано для Linux практически без особыхизменений 1 . Кроме того, все исходные тексты для Linux, включая ядро, драйверыустройств, библиотеки, пользовательские программы и инструментальные сред­ства распространяются свободно. Другие специфические внутренние черты Linuxвключают контроль работ по стандарту POSIX (используемый оболочками, таки­ми как csh и bash), псевдотерминалы (pty), поддержку национальных и стандарт­ных раскладок клавиатур динамически загружаемыми драйверами клавиатур.Linux поддерживает различные типы файловых систем для хранения данных.

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

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

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