[SYS1] Operating Systems

  • code from 10/21/2016: git://git.lse.epita.fr/users/laskar_g/section-as-array-abuse.git

[SYS2] Operating Systems

This course is split in 1.5h sessions

Exam Revisions

  • Pagination & Memory Mappings
  • Scheduling
  • Filesystems

Minutes

Course 1:

Corrections of SYS1 & ASSE Midterms

Course 2:

Boot process from power up to kernel.

Course 3:

  • What is a task?
  • States of a task
  • Scheduling metrics
  • idle task

Course 4:

  • IO Bound / CPU Bound
  • Scheduling Algorithms:
    • RR
    • MQRR
    • CFS
    • some notes about BFS

Course 5:

Filesystem:

  • Inodes
  • operations
  • VFS presentation
  • mount
  • Btrees
  • Basic view of a disk/block (block size, operations)
  • study case: FAT
  • study case: inode on ext filesystems
  • Btree based indexes for inodes
  • namei
  • study case: FAT & SD cards

Course 6:

Devices:

  • char/block devices
  • mknod
  • operations
  • hotplug (devtmpfs, udev, module aliases)
  • linux kernel modules
  • ioctl
  • example of some char devices (input, drm)

Cours 7:

Devices (continued):

  • block devices
  • anatomy of a block devices
    • operations
    • ioctl() for blocksize and partscan
      • ioctl(fd, BLKGETSIZE, &size);
      • ioctl(fd, BLKRRPART, 0);
    • partitions are a view of another block device (see ~linux/include/linux/fs.h in the linux code source)
  • block layer:
    • How operations are handled
    • IO schedulers (NOOP, Deadline, CFQ)
    • Page cache
  • file mappings