1. Windows. Подготовьте исходный файл с содержимым (например, строка abcdefghij…). Два процесса должны, используя отображение файла в память, поработать с исходным файлом, читая и записывая в память. Убедитесь в том, что исходное содержимое файла изменилось. Необходимо синхронизировать n процессов чтения/записи для n = 2, 4, 8, 16. 2. Ответить на контрольные вопросы: •опишите сходства и различия процессов и нитей; •опишите назначение и алгоритм работы с мьютексами в Windows; •опишите назначение и алгоритм работы с семафорами в Windows.
Лабораторная работа № 2
1. UNIX. Реализовать программу manyforks, осуществляющую порождение нескольких процессов, запуск ими некоторой программы, и ожидание их завершения. Число порождаемых процессов и имя программы указывается при запуске manyforks. Запустить программу таким образом, чтобы после завершения она перешла в состояние zombie, а затем уничтожить zombie-процесс из командной строки shell. 2. Ответить на контрольные вопросы: •опишите основные системные вызовы для работы с процессами в UNIX; •каков максимальный размер программного канала и почему? •для чего служат каналы? Их особенности.
Лабораторная работа № 3
1. X Window. Выполнить компиляцию и запуск программы из примера 1. Определить адрес сервера, по умолчанию с которым, будет установлено соединение, номера дисплеев и экранов по умолчанию, разрешение экрана и количество цветов. 2. WINAPI. Написать программу, позволяющую пользователю при помощи выпадающего списка (стандартный класс окна COMBOBOX) выбрать кисть (от 5 различных кистей, например "сплошная синяя", "штриховая зелёная" и т.д.), которой после выбора закрасится рабочая часть активного окна и дочернего окна. 3. Ответить на контрольные вопросы: •перечислите основные компоненты системы X Window и их назначение; •каким образом операционная система идентифицирует сеанс и устройство терминала для процессов программ, запускаемых в среде X Window? •какие действия обычно выполняет функция WinMain? •для чего необходимо регистрировать класс окна? (Windows)?
Лабораторная работа № 4
Разработать на языке C программу transport, демонстрирующую использование основных функций работы с сокетами UNIX. Программа должна порождать три процесса: два клиента общаются с одним сервером, которые выполняют однонаправленную передачу данных между собой через TCP cокеты, относящиеся к локальному сетевому интерфейсу lo. При помощи программы transport оценить скорость передачи данных через стек протоколов TCP/IP при использовании протокола TCP. Оценить снижение скорости передачи данных в следующих ситуациях: обмен данными между процессами программы transport осуществляется поочередно в обоих направлениях; одновременно работают несколько параллельно запущенных программ transport.
Лабораторная работа № 5
1. Ответить на следующие контрольные вопросы: •на каком этапе создания приложения вырабатываются виртуальные адреса его внутренних данных? •предположим, что в адресном пространстве процесса располагаются таблицы используемых процессом сегментов и страниц. Каким образом ядро может выгрузить это пространство из памяти? •какие методы распределения памяти между процессами вы знаете? 2. Напишите набор программ, удовлетворяющих теоретическому понятию оверлея. Каждый оверлей должен осуществлять какие-либо вычисления, выводя результаты в терминал, далее он передает управление другому оверлею из комплекса. Всего в комплексе должно быть не менее 3 оверлеев. Операционная система - Windows. 3. Напишите программу, которая будет подсчитывать среднее время доступа к информации на жестком диске по записи. Операционная система - Unix.
Люди если у кого то есть хоть какие то "полезные" мысли, изложите их пожалуйста! Сам пытаюсь, но дается тяжело!)
1. Windows. Подготовьте исходный файл с содержимым (например, строка abcdefghij…). Два процесса должны, используя отображение файла в память, поработать с исходным файлом, читая и записывая в память. Убедитесь в том, что исходное содержимое файла изменилось. Необходимо синхронизировать n процессов чтения/записи для n = 2, 4, 8, 16.
2. Ответить на контрольные вопросы:
•опишите сходства и различия процессов и нитей;
•опишите назначение и алгоритм работы с мьютексами в Windows;
•опишите назначение и алгоритм работы с семафорами в Windows.
Лабораторная работа № 2
1. UNIX. Реализовать программу manyforks, осуществляющую порождение нескольких процессов, запуск ими некоторой программы, и ожидание их завершения. Число порождаемых процессов и имя программы указывается при запуске manyforks.
Запустить программу таким образом, чтобы после завершения она перешла в состояние zombie, а затем уничтожить zombie-процесс из командной строки shell.
2. Ответить на контрольные вопросы:
•опишите основные системные вызовы для работы с процессами в UNIX;
•каков максимальный размер программного канала и почему?
•для чего служат каналы? Их особенности.
Лабораторная работа № 3
1. X Window. Выполнить компиляцию и запуск программы из примера 1. Определить адрес сервера, по умолчанию с которым, будет установлено соединение, номера дисплеев и экранов по умолчанию, разрешение экрана и количество цветов.
2. WINAPI. Написать программу, позволяющую пользователю при помощи выпадающего списка (стандартный класс окна COMBOBOX) выбрать кисть (от 5 различных кистей, например "сплошная синяя", "штриховая зелёная" и т.д.), которой после выбора закрасится рабочая часть активного окна и дочернего окна.
3. Ответить на контрольные вопросы:
•перечислите основные компоненты системы X Window и их назначение;
•каким образом операционная система идентифицирует сеанс и устройство терминала для процессов программ, запускаемых в среде X Window?
•какие действия обычно выполняет функция WinMain?
•для чего необходимо регистрировать класс окна? (Windows)?
Лабораторная работа № 4
Разработать на языке C программу transport, демонстрирующую использование основных функций работы с сокетами UNIX. Программа должна порождать три процесса: два клиента общаются с одним сервером, которые выполняют однонаправленную передачу данных между собой через TCP cокеты, относящиеся к локальному сетевому интерфейсу lo.
При помощи программы transport оценить скорость передачи данных через стек протоколов TCP/IP при использовании протокола TCP.
Оценить снижение скорости передачи данных в следующих ситуациях: обмен данными между процессами программы transport осуществляется поочередно в обоих направлениях; одновременно работают несколько параллельно запущенных программ transport.
Лабораторная работа № 5
1. Ответить на следующие контрольные вопросы:
•на каком этапе создания приложения вырабатываются виртуальные адреса его внутренних данных?
•предположим, что в адресном пространстве процесса располагаются таблицы используемых процессом сегментов и страниц. Каким образом ядро может выгрузить это пространство из памяти?
•какие методы распределения памяти между процессами вы знаете?
2. Напишите набор программ, удовлетворяющих теоретическому понятию оверлея. Каждый оверлей должен осуществлять какие-либо вычисления, выводя результаты в терминал, далее он передает управление другому оверлею из комплекса. Всего в комплексе должно быть не менее 3 оверлеев. Операционная система - Windows.
3. Напишите программу, которая будет подсчитывать среднее время доступа к информации на жестком диске по записи. Операционная система - Unix.
Люди если у кого то есть хоть какие то "полезные" мысли, изложите их пожалуйста! Сам пытаюсь, но дается тяжело!)