Skip to content

gfxv/os-lab2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Лабораторная работа №2 (Базовый трек)

Задание

В данной лабораторной работе необходимо реализовать блочный кэш в пространстве пользователя в виде динамической библиотеки (.so). Политику вытеснения: Linux FIFO

При выполнении работы необходимо реализовать простой API для работы с файлами, предоставляющий пользователю следующие возможности:

  • Открытие файла по заданному пути файла, доступного для чтения. Процедура возвращает некоторый хэндл на файл. Пример: int lab2_open(const char *path)
  • Закрытие файла по хэндлу. Пример: int lab2_close(int fd)
  • Чтение данных из файла. Пример: ssize_t lab2_read(int fd, void buf[.count], size_t count)
  • Запись данных в файл. Пример: ssize_t lab2_write(int fd, const void buf[.count], size_t count)
  • Перестановка позиции указателя на данные файла. Достаточно поддержать только абсолютные координаты. Пример: off_t lab2_lseek(int fd, off_t offset, int whence)
  • Синхронизация данных из кэша с диском. Пример: int lab2_fsync(int fd)

Операции с диском разработанного блочного кеша должны производиться в обход page cache используемой ОС.

В рамках проверки работоспособности разработанного блочного кэша необходимо адаптировать программу-загрузчик из ЛР 1, добавив использование кэша. Запустить программу и убедиться, что она корректно работает. Сравнить производительность до и после.

Структура проекта

  • lib/ - реализация блочного кэша
  • src/ - программы-нагрузчики для проверки блочного кэша
  • text/ - скрипт для генерации большого текстового файла (нужен для программы-нагрузчика)
.
├── Dockerfile
├── Makefile
├── README.md
├── Taskfile.yml
├── docker-compose.yml
├── lib
│   ├── Makefile
│   ├── include
│   │   ├── api.h
│   │   └── cache.h
│   ├── obj
│   └── src
│       ├── api.c
│       └── cache.c
├── src
│   ├── ema_search_no_cache.c
│   └── ema_search_with_cache.c
└── text
    └── generate.py

About

Лаба №2 по Операционным системам, ИТМО ВТ (СППО)

Resources

Stars

Watchers

Forks

Contributors