Контрольная работа по «Операционные системы»

Министерство Образования Российской Федерации

Ивановский государственный энергетический университет имени В.И. Ленина

Кафедра программного обеспечения компьютерных систем

 

 

 

 

 

 

 

 

 

Контрольная работа

по дисциплине «Операционные системы»

Вариант №3.

Выполнил: Студ. гр. 3-80к Лебедев Д.В. Шифр 911143К

Руководитель: Гадалов А.Б.

 

 

Иваново, 2014

 

Тема №1.

История, архитектура, основные концепции организации и функционирования ОС.

Вопрос №6.

Микроядерная архитектура ОС, ее достоинства и недостатки.

 

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

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

Рисунок 1.1 Перенос основного объема функций ядра в пользовательское пространство

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

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

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

Схематично механизм обращения к функциям ОС, оформленным в виде серверов, выглядит следующим образом (рис. 1.2).

Рисунок 1.2. Реализация системного вызова в микроядерной архитектуре

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

Преимущества и недостатки микроядерной архитектуры.

ОС, основанные на концепции микроядра, в высокой степени удовлетворяют большинству требований, предъявляемых к современным ОС: обладают переносимостью, расширяемостью, надежностью, подходят для поддержки распределенных вычислений.

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

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

 

Тема №2.

Операционные системы Unix/Linux.

Вопрос №15.

Средства конфигурирования сети.

Настройка TCP/IP в Linux для работы в сети Ethernet

Для работы с сетевыми протоколами TCP/IP в Linux достаточно наличие только петлевого интерфейса, но если необходимо объединить хосты между собой, естественно, необходимо наличие сетевого интерфейса, каналов передачи данных (например витая пара), возможно, какого-либо сетевого оборудования. Так же, необходимо наличие установленных утилит для настройки сети (/sbin/ifconfig, /sbin/route и др.), обычно поставляемые в пакете net-tools. Так же необходимо наличие конфигурационных файлов для сети (например /etc/hosts) и поддержку сети ядром Linux.

Файлы настроек сети в Linux (конфигурационные файлы)

В целом, вся работа Linux основана на процессе init, который рождается при загрузке ОС и плодит своих потомков, которые в свою очередь и выполняют всю необходимую работу, будь то запуск bash или демона. Да, и вся загрузка Linux основана на скриптах bash, в которых прописана вся последовательность запуска мелких утилит с различными параметрами, которые последовательно запускаются/останавливаются при запуске/остановке системы. Аналогично запускается и сетевая подсистема Linux.

Каждый дистрибутив Linux имеет слегка отличающийся от других механизм инициализации сети, но общая картина, думаю, после прочтения будет ясна. Если просмотреть стартовые скрипты сетевой подсистемы какого-либо дистрибутива Linux, то, как настроить конфигурацию сети с помощью конфигурационных файлов, станет более-менее понятно, например у Debian (за основу возьмем этот дистрибутив) за инициализацию сети отвечает скрипт/etc/init.d/networking, просмотрев который, можно найти несколько функций, проверяющих наличие подключенных сетевых файловых систем (check_network_file_systems(), check_network_swap()), а так же проверку существования какого-то пока непонятного конфига /etc/network/options (функция process_options()),  а в самом низу, конструкцией case "$1" in проверяется первый параметр переданный скрипту и в соответствии с введенным параметром (start/stop/force-reload|restart или любое дугое) производит определенные действия. Из этих самых "определенных действий", на примере аргумента start видно, что сначала запускается функция process_options, далее отправляется в лог фраза Configuring network interfaces, и запускается команда ifup -a. Если посмотреть man ifup, то видно что данная команда читает конфиг из файла /etc/network/interfaces и согласно ключу -a запускает все интерфейсы имеющие параметр auto.

Соответственно, прочитав  man interfaces (rus) или man interfaces (eng) , становиться ясно, как же в Debian настроить какой-либо сетевой интерфейс с помощью конфига /etc/network/interfaces. Ниже, пример данного конфигурационного файла для 3х интерфейсов: петлевой (lo), со статичным IP (eth2) и IP получаемым по dhcp (eth0):

ip-server:~# cat /etc/network/interfaces

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

 

# The loopback network interface

auto lo

iface lo inet loopback

 

# The primary network interface

allow-hotplug eth0

iface eth0 inet dhcp

 

allow-hotplug eth2

iface eth2 inet static

    address 192.168.1.1

    netmask 255.255.255.0

    gateway 192.168.1.254

    broadcast 192.168.1.255


В данном конфигураторе строки allow-hotplug и auto - это синонимы и интерфейсы будут подняты по команде ifup -a. Вот, собственно, и вся цепь работы сетевой подсистемы. Аналогично, в других дистрибутивах: в RedHat и SUSE сеть запускается скриптом /etc/init.d/network. Рассмотрев его, аналогично можно найти, где лежит конфигурация сети.

/etc/hosts

Данный файл хранит перечень IP адресов и соответствующих им (адресам) имен хостов.

ip-server:~# cat /etc/hosts

# ip        host.in.domain host

127.0.0.1       localhost

127.0.1.1       ip-server.domain.local  ip-server

192.168.1.1     ip-server.domain.local  ip-server


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

/etc/hostname

Данный файл содержит NetBIOS-имя хоста:

ip-server:~# cat /etc/hostname

ip-server


/etc/networks

Данный файл хранит имена и адреса локальной и других сетей. Пример:

ip-server:~# cat /etc/networks

default         0.0.0.0

loopback        127.0.0.0

link-local      169.254.0.0

home-network    192.168.1.0


При использовании данного файла, сетями можно управлять по имени. Например добавить маршрут не route add192.168.1.12, а route add home-network.

/etc/nsswitch.conf

Файл определяет порядок поиска имени хоста/сети, за данную настройку отвечают строки:

Для хостов:

hosts:          files dns

Для сетей:

networks:       files


Параметр files указывает использовать указанные файлы (/etc/hosts и /etc/networks соответственно), параметр dns указывает использовать службу dns.

/etc/host.conf

Файл задает параметры разрешения имен для резолвера

ip-server:~# cat /etc/host.conf

multi on


Данный файл  указывает библиотеке resolv - возвращать  все  допустимые адреса  узла, которые встретились в файле /etc/hosts, а не только первый из них.

/etc/resolv.conf

Данный фал определяет параметры механизма преобразования сетевых имен в IP адреса. Простым языком, определяет настройки DNS. Пример:

ip-server:~# cat /etc/resolv.conf

nameserver 10.0.0.4

nameserver 10.0.0.1

search domain.local


Первые 2 строчки указывают сервера DNS. Третья строка указывает домены поиска. Если при разрешении имени, имя не будет FQDN-именем, то данный домен подставиться в виде "окончания". Например, при выполнении команды ping host, пингуемый адрес преобразуется в host.domain.local. Остальные параметры можно почитать в man resolv.conf. Очень часто, в Linux используется динамическая генерация данного файла, с помощью т.н. программы/sbin/resolvconf. Данная программа является посредником между службами, динамически предоставляющими сервера имен (например DHCP client) и службами, использующими данные сервера имен. Для того чтобы использовать динамически генерируемый файл /etc/resolv.conf, необходимо сделать данный файл символической ссылкой на/etc/resolvconf/run/resolv.conf. В некоторых дистрибутивах путь может быть другой, об этом обязательно будет написано в man resolvconf.

Настройка сети

Ознакомившись с основными конфигурационными файлами, можно посмотреть на команды управления сетью. Выше уже говорилось о команде ifup, ifdown, но данные средства не совсем универсальны, допустим в дистрибутивах RH данных команд по умолчанию нет. Команды, описываемые ниже принадлежат пакету net-tools.

Чтобы быть уверенным в работоспособности команды в любом дистрибутиве Linux, необходимо пользоваться двумя основными командами. Это ifconfig, route и arp. Первая команда (ifconfig) отвечает за настройку сетевых интерфейсов (ip, маска, шлюз), вторая (route) - настройка маршрутизации, третья (arp) - управление arp-таблицей.  Хочется заметить, что выполнение данных команд без отключения стандартного скрипта запуска SystemV сетевой подсистемы внесет изменения только до первой перезагрузки/перезапуска сетевой службы, т.к. если пораскинуть мозгами, то можно понять, что скрипт /etc/init.d/networking при очередном запуске перечитает указанные выше конфигураторы и применит старые настройки. Соответственно, выход для постоянной установки настроек - либо команда ifconfig с соответствующими параметрами (вписать в rc.local), либо поправить руками соответствующие конфигураторы сетевых интерфейсов.

Так же, если выполняется команда ifconfig с недостающими параметрами (например, только IP адрес), то остальные дополняются автоматически (например бродкаст адрес добавляется по умолчанию с хостовым адресом, оканчивающимся на 255 и маска подсети по умолчанию берется 255.255.255.0).

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

Если есть необходимость организовать свои маршруты, то необходимо воспользоваться командой route. Данной командой можно добавлять и удалять маршруты, но опять же, это поможет только до перезапуска /etc/init.d/networking (или другого скрипта, отвечающего за сеть в Вашем дистрибутиве). Чтобы маршруты добавлялись автоматом, необходимо так же, как и с командой ifconfig - добавить команды добавления маршрутов в rc.local, либо поправить руками соответствующие конфиги сетевых интерфейсов (например в Deb -/etc/network/options).

Диагностика сети Linux

Существует большое количество инструментов диагностики сети в Linux, зачастую, они очень похожи на утилиты от Microsoft. Я рассмотрю 3 основные утилиты диагностики сети, без которых выявить неполадки будет проблематично.

PING

Думаю, что данная утилита знакома чуть ли не каждому. Работа этой утилиты заключается в отправке т.н. пакетов ICMP удаленному серверу, который будет указан в параметрах команды, сервер возвращает отправленные команды, а ping подсчитывает время требуемое отправленному пакету, чтобы дойти до сервера и вернуться. Например:

[root@proxy ~]# ping ya.ru

PING ya.ru (87.250.251.3) 56(84) bytes of data.

64 bytes from www.yandex.ru (87.250.251.3): icmp_seq=1 ttl=57 time=42.7 ms

64 bytes from www.yandex.ru (87.250.251.3): icmp_seq=2 ttl=57 time=43.2 ms

64 bytes from www.yandex.ru (87.250.251.3): icmp_seq=3 ttl=57 time=42.5 ms

64 bytes from www.yandex.ru (87.250.251.3): icmp_seq=4 ttl=57 time=42.5 ms

64 bytes from www.yandex.ru (87.250.251.3): icmp_seq=5 ttl=57 time=41.9 ms

^C

--- ya.ru ping statistics ---

5 packets transmitted, 5 received, 0% packet loss, time 4012ms

rtt min/avg/max/mdev = 41.922/42.588/43.255/0.500 ms


Как видно, из приведенного примера, ping выводит нам кучу полезной информации. Прежде всего, мы выяснили, что можем установить соединение с хостом ya.ru (иногда говорят, что "хост ya.ru нам доступен"). Во-вторых, мы видим, что DNS работает корректно, потому что "пингуемое" имя было корректно преобразовано в IP адрес (PING ya.ru (87.250.251.3)). Далее, в поле icmp_seq= указана нумерация отправляемых пакетов. Каждому отправляемому пакету последовательно присваивается номер и если в данной нумерации будут "провалы", то это нам расскажет о том, что соединение с "пингуемым" неустойчиво, а так же может означать, что сервер, которому шлют пакеты перегружен. По значению time= мы видим, сколько времени пакет путешествовал до 87.250.251.3 и обратно. Остановить работу утилиты ping можно клавишами Ctrl+C.

Так же, утилита ping интересна тем, что может позволить увидеть, где именно возникли неполадки. Допустим,утилита ping выводит сообщение network not reachable (сеть недоступна), либо другое аналогичное сообщение. Это, скорее всего, говорит о некорректной настройке вашей системы. В таком случае, можно послать пакеты по IP-адресу провайдера, чтобы понять, в каком месте возникает проблема (между локальным ПК или "дальше"). Если Вы подключены к интернету через маршрутизатор, то можно послать пакеты по его IP. Соответственно, если проблема проявиться уже на этом этапе, это говорит, о неправильном конфигурировании локальной системы, либо о повреждении кабеля, если маршрутизатор отзывается, а сервер провайдера нет, то проблема - в канале связи провайдера и т.д. Наконец, если неудачей завершилось преобразовании имени в IP, то можно проверить связь по IP, если ответы будут приходить корректно, то можно догадаться, что проблема в DNS.

Следует отметить, что данная утилита не всегда надежный инструмент для диагностики. Удаленный сервер может блокировать ответы на ICMP запросы.

TRACEROUTE

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

[root@proxy ~]# traceroute ya.ru

traceroute to ya.ru (213.180.204.3), 30 hops max, 60 byte packets

1  243-083-free.kubtelecom.ru (213.132.83.243)  6.408 ms  6.306 ms  6.193 ms

2  065-064-free.kubtelecom.ru (213.132.64.65)  2.761 ms  5.787 ms  5.777 ms

3  lgw.kubtelecom.ru (213.132.75.54)  5.713 ms  5.701 ms  5.636 ms

4  KubTelecom-lgw.Krasnodar.gldn.net (194.186.6.177)  81.430 ms  81.581 ms  81.687 ms

5  cat26.Moscow.gldn.net (194.186.10.118)  47.789 ms  47.888 ms  48.011 ms

6  213.33.201.230 (213.33.201.230)  43.322 ms  41.783 ms  41.106 ms

7  carmine-red-vlan602.yandex.net (87.250.242.206)  41.199 ms  42.578 ms  42.610 ms

8  www.yandex.ru (213.180.204.3)  43.185 ms  42.126 ms  42.679 ms


Как видно, можно проследить маршрут от маршрутизатора провайдера 243-083-free.kubtelecom.ru (213.132.83.243) (юг России) до конечного хоста в www.yandex.ru (213.180.204.3)  в Москве.

DIG

Данная утилита посылает запросы серверам DNS и возвращает информацию о заданном домене. Пример:

[root@proxy ~]# dig @ns.kuban.ru roboti.ru

 

; <<>> DiG 9.3.6-P1 <<>> @ns.kuban.ru roboti.ru

; (1 server found)

;; global options:  printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64412

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0

 

;; QUESTION SECTION:

;roboti.ru.                     IN      A

 

;; ANSWER SECTION:

roboti.ru.              448     IN      A       72.52.4.90

 

;; AUTHORITY SECTION:

roboti.ru.              345448  IN      NS      ns1.sedoparking.com.

roboti.ru.              345448  IN      NS      ns2.sedoparking.com.

 

;; Query time: 102 msec

;; SERVER: 62.183.1.244#53(62.183.1.244)

;; WHEN: Thu Feb 17 19:44:59 2011

;; MSG SIZE  rcvd: 94


Команда dig послала запрос серверу DNS - ns.kuban.ru (@ns.kuban.ru - данный параметр указывать не обязательно, в таком случае источником информации о DNS будет взят сервер из настройки вашей системы) о доменном имени roboti.ru. В результате чего, получила ответ, в котором мы можем увидеть в разделе ANSWER SECTION информацию об IP адресах домена, в разделе AUTHORITY SECTION информацию о т.н. авторитетных DNS серверах. Третья строка снизу говорит нам о том, какой сервер предоставил ответ.

 

Тема №3.

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

Вопрос №16.

Виртуальная память Windows XP.

 

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

При использовании виртуальной памяти упрощается программирование, так как программисту больше не нужно учитывать ограниченность памяти, или согласовывать использование памяти с другими приложениями. Для программы выглядит доступным и непрерывным все допустимое адресное пространство, вне зависимости от наличия в ЭВМ соответствующего объёма ОЗУ.

Применение механизма виртуальной памяти позволяет:

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

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

В большинстве современных операционных систем виртуальная память организуется с помощью страничной адресации. Оперативная память делится на страницы: области памяти фиксированной длины (например, 4096 байт), которые являются минимальной единицей выделяемой памяти (то есть даже запрос на 1 байт от приложения приведёт к выделению ему страницы памяти). Процесс обращается к памяти с помощью адреса виртуальной памяти, который содержит в себе номер страницы и смещение внутри страницы. Процессор преобразует номер виртуальной страницы в адрес соответствующей ей физической страницы при помощи буфера ассоциативной трансляции. Если ему не удалось это сделать, то требуется обращение к таблице страниц (так называемый Page Walk), что может сделать либо сам процессор, либо операционная система (в зависимости от архитектуры). Если страница выгружена из оперативной памяти, то операционная система подкачивает страницу с жёсткого диска. При запросе на выделение памяти операционная система может «сбросить» на жёсткий диск страницы, к которым давно не было обращений. Критические данные (например, код запущенных и работающих программ, код и память ядра системы) обычно находятся в оперативной памяти (исключения существуют, однако они не касаются тех частей, которые отвечают за обработку аппаратных прерываний, работу с таблицей страниц и использование файла подкачки).

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

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

Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса.

Операционная система, возьмем, к примеру Windows XP , сама устанавливает нужный объем виртуальной памяти и ее обычно хватает. Но если у Вас на компьютере выполняются одновременно много программ, в том числе и игр, то объем виртуальной памяти можно увеличить.

Для этого нажимаем правой кнопкой мыши по значку "Мой компьютер" на рабочем столе или в меню "Пуск"  по "Мой компьютер" и выбираем "Свойства".

Рисунок 2.1. Увеличение виртуальной памяти в Windows XP.

В открывшемся окне "Свойства системы" переходим на вкладку "Дополнительно" и нажимаем на кнопку "Параметры" в разделе "Быстродействие".

Рисунок 2.2. Увеличение виртуальной памяти в Windows XP.

В окне "Параметры быстродействия" переходим на вкладку "Дополнительно" и нажимаем кнопку "Изменить" в разделе "Виртуальная память".

Рисунок 2.3. . Увеличение виртуальной памяти в Windows XP.

В новом окне "Виртуальная память" мы можем управлять файлом подкачки.

У Вас, скорее всего, установлено значение "Размер по выбору системы. Для того, чтоб изменить размер файла подкачки нужно выбрать диск, который будет использоваться для файла подкачки, а ниже выбрать значение "Особый размер".

Далее, в текстовых полях "Исходный размер" и "Максимальный размер" ставим минимальное и максимальное значение файла подкачки.

Рисунок 2.4. Увеличение виртуальной памяти в Windows XP.

Минимальное значение рекомендуется устанавливать в 1.5 раза больше объема оперативной памяти, установленной в вашем компьютере.

Для того, чтоб убрать файл подкачки с других дисков, выбираем диск в списке и ставим значение "Без файла подкачки". Данный параметр не принципиален, но рекомендован.

 

 

 

 

 

 

 

 

Список литературы

Mc.Sim. (б.д.). Настройка сетевого соединения Linux. Получено из Блог любителя экспериментов: http://www.k-max.name/linux/network-in-linux/

Wikimedia Foundation, Inc. (б.д.). Виртуальная память. Получено из Википедия: http://ru.wikipedia.org/wiki/%C2%E8%F0%F2%F3%E0%EB%FC%ED%E0%FF_%EF%E0%EC%FF%F2%FC

 

 


Контрольная работа по «Операционные системы»