User Tools

Site Tools


sys:os

Операционные системы (ОС)

Данная страница предназначена для организации курса “Операционные системы (ОС) 22ХХ ИГУ”.

Лабы сдавать в свою телеграм-группу в виде ссылки на единый проект всех лабораторных работ на github или ему подобный сервис. Лабы можно делать в любом порядке, можно в виде единого проекта (по согласованию с преподавателем).

Лабораторная работа 1

  1. Исследование компилятора gcc, язык ассемблера. Связь процесса и операционной системы. Makefile, git.
    • Нужно написать программу на С, С++, PASCAL/FPC и др. компилируемом языке, странслировать его в Assembler с разными опциями оптимизации
       gcc -S -o <>.s <>.c [-O[0123s]] [-g[123]]
    • Разобраться с одним из вариантов [оптимизации] ассемблерной программой (добавить комментарии в сгенерированный ассемблерный код) - найти циклы, переменные и т.п.
    • Преобразовать программу в модульную, разработать Makefile.
  2. Программу усовершенствовать: добавить параллельный процесс средствами Linux/Windows. Синхронизация доступа к общему ресурсу (файл, канал, pipe, очередь, mmap, smmem). Язык С или другой, но на С проще, есть куча примеров.

Варианты лабораторных работ (реализуемая функция)

  1. вычисление
    1. факториала, чисел Фибоначчи, функции Аккермана, …
    2. определенного интеграла численным методом,
    3. сходящегося ряда для известных функций (sin, cos, exp, ….);
  2. реализация численного метода
    1. дифференцирования,
    2. решения трансцендентного уравнения (методы Ньютона, Рыбакова, деления отрезка пополам, золотого сечения, простых итераций, …),
    3. решения задачи Коши;
  3. реализация алгоритма
    1. Бразенхема (рисование прямой, окружности, общего вида).

Лабораторная 2 - Установка Linux (развертка, bootstraping)

… из командной строки:

  1. Создать виртуальную Linux x86_64-машину (не забываем включить в BIOS в CPU аппаратную поддержку виртуальных машин) с винчестером и CD, сетевая карта - bridge.
  2. Загрузить дистрибутив System Rescue CD **64!**, подсоединяем к виртуальной машине, грузим CD; на некоторых машинах может не запускаться, попробуйте версию 4.X.X.
  3. Устанавливаем Linux-ы: изучаем бутстраппинг (bootstrapping) операционной системы:
    1. (“начальный уровень”) Debian/Ubuntu при помощи debootstrap;
    2. (“средний уровень”) ставим Arch Linux (my favorite distribution) русский перевод (может быть неактуальным!) ;
    3. (“продвинутый уровень”) Gentoo/Funtoo;
    4. (“продвинутый уровень”) Установка глобального доступа в сеть IPv6 Tunnel brocker;
    5. (“уровень 'guru'”) LHS;
    6. (“уровень 'dao'”) Arch загрузкой по сети DHCP/TFTP/NFS, можно и другие дистрибутивы использовать.
  4. Установить сервер sshd.
  5. Сделать пользователя user с паролем 123456 (как у Хиллари Клинтон на корпоративной почте ;-)); пробросьте порт маршрутизатора 7022 на порт 22 вашей виртуальной машины; попробую зайти, посмотреть все ли готово.
  6. Отчет - запишите ролик (VirtualBox, например, может это) как все было (тут надо продумать вариант записи консоли).

Лабораторная 3a. Реализация скрипта bash

… в вашей установленной виртуальной машине реализовать задачу из методички, опубликованной здесь: ЗДЕСЬ.

Лабораторная 3b. Реализация скрипта на Windows PowerShell

Задание то же, что и в Лабораторной 3a, но надо сделать в Powershell.

  1. Изучаем по книге (покупаем за $0), презентация;
  2. Делаем задачу из лабы с bash, но средствами Windows (Imagemagick для Windows существует тоже, например);
    1. Как вариант можно по согласованию поставить самостоятельно задачку.

Лабораторная 4. Разработка сетевой инфраструктуры для распределенных вычислений

…. для организации распределенной обработки информации. Совместный проект 2-5 человек. Потребуются ваши виртуальные машины или контейнеры в виртуальной сети.

  1. Изучить RabbitMQ.
  2. Придумать задачу, например потоковая обработка документов (считывание изображений сканированных документов, распознавание, разметка, сохранение в БД, поиск в БД); Крутой проект, конечно, но можно модель построить.
  3. Реализовать виртуальную сеть (zerotier, OpenVPN, wireguard) и инфраструктуру RabbitMQ.
  4. Реализовать на инфраструктуре - каждый берет себе этап обработки, пишет на любом языке, поддерживаемом RebbitMQ.

Как продвинутый вариант - можно зарегистрироваться у Microsoft на Asure и там зажигать год бесплатно на новой учетной записи.

Темы проектов

Темы находятся здесь

Оценка = количество сданных лаб + 1. 😉 Кому трудно - делайте вдвоем.

Доступ к Виртуальной машине

Из командной строки (powershell) Windows 8.0-11.0

 ssh stud@imp.isclan.ru 

Пароль здесь не публикую по понятным причинам.

sys/os.txt · Last modified: 2025/02/06 14:22 by eugeneai