Skip to content

Лабораторные работы по системному программному обеспечению (ИТМО, ПИиКТ-СиППО, 3 курс)

Notifications You must be signed in to change notification settings

testpassword/System-software

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Лабораторная №1 - файловые системы

Вариант - HFS PLus Forked from https://github.com/progML/Spo_1

Реализовать программу, которая может использоваться в двух режимах. Режимы задаются в виде аргументов командной строки и позволяют:

  1. Выводить список дисков и разделов, подключенных к операционной системе.
  2. Выполнять операции надфайловой системой, представленной назаданномдиске,разделе или в файле.

Запущенная во втором режиме программа должна выполнять следующие действия:

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

Программа должна состоять из двух модулей. Первый модуль реализует функции для работы с файловой системой, а второй – взаимодействие с пользователем.

Лабораторная №2

Вариант - Node.js Forked from https://github.com/rbetik12/flexcommander-js

Цель – изучение способов организации программных интерфейсов между средами высокого и низкого уровней программной архитектуры.

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

Лабораторная №3

Вариант - Library catalog Forked from https://github.com/progML/Spo_3

Цель – изучение способов взаимодействия между сетевыми службами низкого уровня в асинхронном режиме.

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

Порядок выполнения:

  1. Выполнить анализ предметной области, которая задается вариантом к лабораторной работе. Результатом анализа должен быть набор сущностей, которые будут в качестве элементов данных (типов, структур, операций) и/или составных частей программной архитектуры (компонентов, модулей) при реализации программы.
  2. Составить диаграмму, на которой схематически будут показаны результаты анализа: сущности, их атрибуты и взаимосвязи.
  3. Составить план постепенного выполнения задания: какие части функциональности, в каком порядке предполагается реализовывать, в каком порядке и как проверять их работоспособность.
  4. Загрузить все полученные артефакты в отдельную директорию «docs» репозитория, в корневую директорию положить readme.md с номером варианта и кратким описанием.
  5. Продемонстрировать составленные диаграмму и план преподавателю. Для этого достаточно просто отправить преподавателю ссылку на репозиторий.
  6. После проверки и получения рекомендаций приступить к реализации программы, создавая на каждый этап выполнения отдельную ветку в репозитории.
  7. По завершении каждого этапа создать pull-request, включив преподавателя в число reviewer-ов.
  8. Если pull-request отклоняется преподавателем, выполнить необходимые правки и обновить его, запросив повторное ревью.
  9. Когда pull-request одобрен, «слить» его с основной веткой кода, после чего создать новую ветку для работы над следующим этапом.

Программа может выполняться в двух режимах: сервер или клиент. Режим определяется аргументом командной строки. Завершение программы-сервера происходит по нажатию ключевой клавиши (например, Q). При запуске в режиме клиента чрез аргументы командной строки задаётся имя пользователя и адрес сервера.

About

Лабораторные работы по системному программному обеспечению (ИТМО, ПИиКТ-СиППО, 3 курс)

Resources

Stars

Watchers

Forks