All decks
  • Масштабирование баз данных, Tarantool

  • Системное программирование 10

    Пользователи, группы, права. Атрибуты и права доступа файлов и процессов. Группы процессов, сессии. /etc/passwd, /etc/group. Sticky bit. Демонизация процесса. Атрибуты глобальных объектов: локов, памяти.

  • Системное программирование 9

    Advanced IO. Неблокирующие IO операции. Блокировка файла: flock, lockf, fcntl. Multiplexed IO: select, poll, kqueue. Async IO: aio_read/write.

  • Системное программирование 8

    Сеть, краткая история от ARPANET. Каноническая модель OSI, реальная TCP/IP, стек протоколов. Реализация сетевого взаимодействия в ядре. Пользовательский интерфейс socket, connect, close, send, recv. TCP и UDP.

  • Системное программирование 7

    IPC. Pipe, FIFO. XSI: message queue, semaphore, shared memory. POSIX semaphore. Sockets: API, byte ordering. Доменные сокеты.

  • Slides CSS

  • Системное программирование 6

    Потоки в linux, представление в ядре. Отличие от процессов. POSIX. Синхронизация: mutex, rw-lock, condition variable, spin lock, barrier. Атомарные операции. Атрибуты потоков и объектов синхронизации.

  • Системное программирование 5

    Файловая система и ядро. Виртуальная ФС. Файлы и типы: block, char, network. Представление в ядре: inode. Секторы. Планировщики IO операций - elevator-ы: Linus, Deadline, Anticipatory, CFQ, Noop. Page cache. Page nowrite/writethrough/writeback. Работа с файлом - buffered, unbuffered, line.

  • VShard - горизонтальное масштабирование в Tarantool

  • Системное программирование 3

    Виртуальная и физическая память. Cache, cache line, cache levels, cache coherence, false sharing. High and low memory, области памяти. Page tables. Память ядра и процесса пользователя, разметка, вызовы: kmalloc, vmalloc, brk, madvice, mmap, pmap. Malloc, его альтернативы.

  • Системное программирование 2

    Режимы работы: привелигированный, обычный. Память, разбивка на секции. Ресурсы процесса - дескрипторы, локи. Прерывания процесса: исключения, аппаратные, шедулинг. Контексты работы: пользователь, ядро, сигнал. Обращения к ядру - системные вызовы: как определяются, передача параметров, возврат результата.

  • Системное программирование 1

    Ядро. Процесс и его представление в ядре. Состояния процесса, цикл жизни. Типы совместной работы процессов: preemptive и cooperative. Планировщики и IO Bound vs Processor Bound процессы, особенности планирования. Вызов nice, приоритеты. Единица планирования - timeslice. Планировщики в ядре, CFS. Вызовы sched_yield и sched_setaffinity.

  • Системное программирование 0

    Linux vs Unix. Microkernel. FreeBSD, Ubuntu, Mac, System III, V, Unix time-sharing system, 4.4BSD. Стандарты: ISO C, POSIX, Single Unix Specifications. Организации: Open Group, IEEE.

  • VShard - горизонтальное масштабирование в Tarantool

  • Новые LSM индексы в Tarantool

  • Защита диссертации

  • ДЗ по запросу проекта

  • Разработка и реализация алгоритма отложенного обновления вторичных индексовна LSM-деревьях в базах данных

  • Разработка распределенного алгоритма двухфазной синхронизации на основе архитектуры базы данных Tarantool

  • Почему в основе интернета лежит ненадежный протокол без соединений?

  • Многопоточное программирование на С++

  • Исследование и модификация алгоритма синхронизации времени от и

  • deck