Статус нашего сайта: |
ICQ Information Center |
ICQ SHOP 5-значные 6-значные 7-значные 8-значные 9-значные Rippers List ОПЛАТА СТАТЬИ СЕКРЕТЫ HELP CENTER OWNED LIST РОЗЫСК!New! ICQ РЕЛИЗЫ Протоколы ICQ LOL ;-) Настройка компьютера Аватарки Смайлики СОФТ Mail Checkers Bruteforces ICQTeam Soft 8thWonder Soft Other Progs ICQ Patches Miranda ICQ ФорумАрхив! ВАШ АККАУНТ ICQ LiveJournal
РекламаНаш канал:irc.icqinfo.ru |
Таненбаум Э.- Архитектура компьютера. стр.393сначала он устанавливает приоритет центрального процессора таким образом, чтобы блокировать все прерывания. Затем он вызывает из памяти семафор, изменяет его и в соответствии с его значением совершает переход. После этого он снова разрешает прерывания. Будет ли этот метод работать, если: 1) существует один центральный процессор, который переключается между процессами каждые 100 миллисекунд? 2) два центральных процессора разделяют общую память, в которой расположен семафор? 24. Компания, разрабатывающая операционные системы, получает жалобы от своих клиентов по поводу последней разработки, которая поддерживает операции с семафорами. Клиенты решили, что аморально со стороны процессов приостанавливать свою работу (то есть спать на работе). Чтобы угодить своим клиентам, компания решила добавить третью операцию, peek. Эта операция просто проверяет семафор, но не изменяет его и не блокирует процесс. Таким образом, программы сначала проверяют, можно ли выполнять для семафора операцию down. Будет ли эта идея работать, если с семафором работают три и более процесса? А если два процесса? 25. Составьте таблицу, в которой в виде функции времени от 0 до 1000 миллисекунд показано, какие из трех процессов, PI, Р2 и РЗ, работают, а какие блокированы. Все три процесса выполняют команды up и down для одного и того же семафора. Если два процесса блокированы и совершается команда up, то запускается процесс с меньшим номером, то есть Р1 имеет преимущество над Р2 и РЗ и т. д. Изначально все три процесса работают, а значение семафора равно 1. ♦ При t = 100 PI выполняет операцию down. ♦ При t = 200 PI выполняет операцию down. + При t = 300 Р2 выполняет операцию up. + При t = 400 РЗ выполняет операцию down. + При t = 500 PI выполняет операцию down. ♦ При t = 600 Р2 выполняет операцию up. ♦ При t = 700 Р2 выполняет операцию down. ♦ При t = 800 PI выполняет операцию up. + При t = 900 PI выполняет операцию up. 26. В системе бронирования билетов на авиарейсы необходимо гарантировать, что пока один процесс использует файл, никакой другой процесс не сможет использовать этот файл. В противном случае два разных процесса, которые работают на два разных агентства по продаже билетов, смогут продать последнее оставшееся место двум пассажирам. Разработайте метод синхронизации с использованием семафоров, чтобы точно знать, что только один процесс в конкретный момент времени может получить доступ к файлу (предполагается, что процессы подчиняются определенным правилам). 27. Чтобы сделать возможной реализацию семафоров на компьютере с несколькими процессорами и общей памятью, разработчики часто включают в машину команду проверки с блокированием (назовем ее TSL). Команда TSL X прове ряет ячейку X. Если содержимое ячейки равно 0, семафоры устанавливаются на 1 за один неделимый цикл памяти, а следующая команда пропускается. Если содержимое ячейки не равно О, TSL работает как пустая операция. Использовав команду TSL, можно написать процедуры lock и unlock со следующими свойствами: процедура lock(x) проверяет, заблокирована ли переменная х. Если нет, эта процедура блокирует переменную х и возвращает управление; процедура uni ock снимет существующую блокировку. Если переменная х уже заблокирована, процедура просто ждет, пока она не освободится, и только после этого блокирует х и возвращает управление. Если все процессы блокируют таблицу семафоров перед ее использованием, то в определенный момент времени только один процесс может производить операции с переменными и указателями, что предотвращает состояние гонок. Напишите процедуры 1 ock и unlock на ассемблере. (Вы можете делать любые разумные допущения, необходимые для решения задачи.) |