mirror of https://github.com/t1meshift/os_labs.git
77 lines
4.0 KiB
Markdown
77 lines
4.0 KiB
Markdown
|
# Лабораторная работа №10
|
|||
|
|
|||
|
## Задание 1
|
|||
|
|
|||
|
С операцией чтения ничего не произошло (она завершилась успешно), так как согласно документации:
|
|||
|
|
|||
|
> if any process has the file open when this happens, deletion is postponed until all processes have closed the file.
|
|||
|
> (https://www.gnu.org/software/libc/manual/html_node/Deleting-Files.html#Deleting-Files)
|
|||
|
|
|||
|
## Задание 2
|
|||
|
|
|||
|
Герц = 1 с^(-1)
|
|||
|
|
|||
|
2 000 000 * 4 = 8 000 000 - количество операций, необходимых для вычисления программы процессором.
|
|||
|
|
|||
|
Тогда 8 000 000 / 8 000 000 Гц = 1 с.
|
|||
|
|
|||
|
Т.е. для проведения данных вычислений нам нужна 1 секунда.
|
|||
|
|
|||
|
## Задание 3
|
|||
|
|
|||
|
Так как виртуальный адрес состоит из номера страницы и смещения в ней, то:
|
|||
|
|
|||
|
размер виртуального адреса в битах (обозначим за n) = количеству бит под номер страницы (p)
|
|||
|
+ количество бит под смещение в странице (d)
|
|||
|
|
|||
|
n = p + d
|
|||
|
|
|||
|
p = n - d
|
|||
|
|
|||
|
n = 20 (по условию)
|
|||
|
|
|||
|
d = log2 (размера страницы) = log2 (1KB) = 10
|
|||
|
|
|||
|
p = 20 - 10 = 10 - количество бит отделяемых в виртуальном адресе под номер страницы.
|
|||
|
|
|||
|
Тогда возможное число страниц:
|
|||
|
|
|||
|
2^p = 2^10 = 1024
|
|||
|
|
|||
|
Ответ: 1024 элемента в таблице страниц.
|
|||
|
|
|||
|
## Задание 4
|
|||
|
|
|||
|
[https://www.intuit.ru/studies/courses/641/497/lecture/11286?page=1](https://www.intuit.ru/studies/courses/641/497/lecture/11286?page=1)
|
|||
|
|
|||
|
Рассмотрим алгоритмы диспетчеризации по следующим критериям:
|
|||
|
|
|||
|
1. время ожидания
|
|||
|
2. starvation
|
|||
|
3. Время обработки процесса (turnaround time)
|
|||
|
4. Разница во времени выполнения процесса
|
|||
|
|
|||
|
### Алгоритмы:
|
|||
|
|
|||
|
1. First-Come-First-Served (FCFS)
|
|||
|
1. Зависит от сложившейся ситуации. В большинстве случаев является не минимальным, так как не оптимизируется.
|
|||
|
2. Отсутствует
|
|||
|
3. Зависит от сложившейся ситуации.
|
|||
|
4. Зависит от порядка входа.
|
|||
|
2. Shortest Job First (SJF)
|
|||
|
1. практически минимальное среднее время ожидания.
|
|||
|
2. возможно, для тяжёлых процессов.
|
|||
|
3. для длительных процессов время выполнение гораздо больше, чем в FCFS.
|
|||
|
4. отсутствует.
|
|||
|
3. Shortest-Remaining-Time-First (SRTF) - SJF с прерыванием, если пришедший процесс выполнять быстрее чем текущий, то мы останавливаем его и берём новый.
|
|||
|
1. минимальное среднее время ожидания.
|
|||
|
2. возможно, для тяжёлых процессов, но не так сильно, как в SJF.
|
|||
|
3. для длительных процессов время выполнение гораздо больше, чем в SJF, так требует затраты на переключение, во время выполнения процесса.
|
|||
|
4. отсутствует.
|
|||
|
4. Round Robin (RR) - даём всем процессам одинаковое время по очереди.
|
|||
|
1. для всех одинаковое.
|
|||
|
2. отсутствует.
|
|||
|
3. зависит от выбранного кванта, если он достаточно большой, то ситуация напоминает FCFS, если же сильно мал, то становятся значительными затраты на переключение процессов.
|
|||
|
4. зависит от выбранного кванта.
|
|||
|
|