LU-OSI-m

From DiLab
Revision as of 11:22, 6 October 2016 by Leo (talk | contribs) (xv6)
Jump to: navigation, search

Operētājsistēmu inženierija (OSI)

LU DF maģistru un doktorantu studiju kurss DatZ5048, meklēt eStudijās.


  • Pasniedzējs: Leo Seļāvo (epasts: vards.uzvards @ gmail.com)
  • Vērtējums = 40% mājas un praktiskie darbi, 10% dalība klasē, 20% KD1 un 30% KD2(eksāmens).


Praktisko un mājas darbu iesniegšana izpildāma noteiktajos datumos un laikos elektroniski, e-studijās.

  • Iesniegšanas termiņa laiks ir 30 minūtes pirms lekcijas sākuma.
  • Iesniegto failu vārdam jābūt sekojošā formātā, ar _svītru tukšumu vietā, piemēram: "OSI_MD1_Vards_Uzvards.pdf"
  • Ja iesniedzams teksts, piemēram, eseja vai apraksts, tad failam jābūt PDF formātā, ja vien nav prasīts citādi uzdevuma nosacījumos.
  • Ja iesniedzami vairāki faili, piemēram, programmas pirmkods, tad tie iepriekš arhivējami kā *.zip arhīvs ar tādu pat faila vārdu kā aprakstīts iepriekš: "OSI_MD1_Vards_Uzvards.zip".
  • Ja darbs tiek iesniegts ar novēlošanos, rezultāts tiek samazināts par 50%. Ja darbs iesniegts vairāk kā nedēļu pēc termiņa, pasniedzējs darbu var nepieņemt.



Kalendārs

Nedēļas datumi Kursa saturs un lasāmviela Darbi un termiņi

08.09.2016

  • Ievads, operētājsistēmas.

Lekcijas piezīmes un "case study".

15.09.2016

  • PC aparatūra un x86 programmēšana.

Lekcijas piezīmes

Lasāmviela: Carter, Paul A. PC Assembly Language. July 23, 2006. (Piezīme: nelasīt 5, 6, and 7.2. nodaļas)

Lasāmviela: Ritchie, Dennis M. "The Evolution of the Unix Time-sharing System." AT&T Bell Laboratories Technical Journal 63, no. 6, Part 2 (October 1984): 1577-93.

  • Pasludināts praktiskais darbs PD1.

22.09.2016

  • OS organizācija.

Lekcijas piezīmes

Lasāmviela: Engler, D. R., Kaashoek, M. F., and O'Toole, J. 1995. Exokernel: an operating system architecture for application-level resource management. In Proceedings of the Fifteenth ACM Symposium on Operating Systems Principles (Copper Mountain, Colorado, United States, December 03 - 06, 1995). M. B. Jones, Ed. SOSP '95. ACM, New York, NY, 251-266.

29.09.2016

  • Adrešu apgabali lietojot segmentāciju.

Lekcijas piezīmes. Lasāmviela: bootasm.S, bootother.S, bootmain.c, main.c, un init.c no xv6.

  • Adrešu apgabali lietojot adrešu tabulas.

Lekcijas piezīmes. Lasāmviela: setupsegs no xv6.

PD1 nodošanas termiņš.

06.10.2016

Pārtraukumu un izņēmumu (exception) apstrāde. Lekcijas piezīmes. Lasāmviela: trapasm.S, trap.c, syscall.c, un usys.S no xv6.

13.10.2016

Daudzprocesoru vides un slēgšanas mehānismi (locking). Lekcijas piezīmes. Lasāmviela: spinlock.c un pārskatīt mp.c no xv6. Vēl par spinlock-iem, semaforiem un futex

  • PD2 nodošanas termiņš.

20.10.2016

Pavedieni, procesi un konteksta pārslēgšanās. Lekcijas piezīmes. Lasāmviela: proc.c, swtch.S, un sys_fork (sysproc.c) no xv6.

27.10.2016

Procesi un koordinācija. Lekcijas piezīmes. Lasāmviela: proc.c, sys_exec, sys_sbrk, sys_wait, sys_exit, un sys_kill no xv6.

xx.xx.2016

  • Faili un disku ievads/izvads.

Lekcijas piezīmes. Lasāmviela: iread, iwrite, filewrite, fileread, wdir, mknod1 un saistīto kodu no sistēmas izsaukumiem iekšā fs.c, bio.c, ide.c un file.c no xv6.

  • Vārdu piešķiršana (naming).

Lekcijas piezīmes. Lasāmviela: namei un pārējo no fs.c, sysfile.c un file.c no xv6.

03.11.2016

Augstas veiktspējas failu sistēmas. Lekcijas piezīmes.

Lasāmviela: Journaling the Linux ext2fs Filesystem


10.11.2016

Vidus semestra kontroldarbs

PD4-A nodošanas termiņš.

17.11.2016

Plānošana (scheduling). Lekcijas piezīmes.

Lasāmviela: Mogul, Jeffrey, and K. K. Ramakrishnan. "Eliminating Receive Livelock in an Interrupt-driven Kernel." Proceedings of the USENIX 1996 Annual Technical Conference. San Diego, CA: January 1996.

PD4-B nodošanas termiņš.

24.11.2016

Mikrokodoli. Lekcijas piezīmes.

Lasāmviela: Liedtke, Jochen. "Improving IPC by Kernel Design." 14th ACM Symposium on Operating System Principles (SOSP). Asheville, North Carolina: 5-8 December 1993.

PD4-C nodošanas termiņš.

01.12.2016

Virtuālās mašīnas. Lekcijas piezīmes 2010. Lekcijas piezīmes 2009 (atsaucās uz "Disco" publikāciju).

Lasāmviela: Keith Adams, Ole Agesen, "A Comparison of Software and Hardware Techniques for x86 Virtualization" (VMware).


Lasāmviela (neobligāta): Bugnion, Edouard, Scott Devine, and Mendel Rosenblum. "Disco: Running Commodity Operating Systems on Scalable Multiprocessors." In Proceedings of the Sixteenth ACM Symposium on Operating Systems Principles. Saint-Malo, France: October 1997.

PD4 visu daļu nodošanas termiņš.

08.11.2016

Mērogojama koordinācija. Lekcijas piezīmes.

  • Lasāmviela (papildus): Andrew Baumann, Paul Barhamy, Pierre-Evariste Dagandz, Tim Harrisy, Rebecca Isaacsy,

Simon Peter, Timothy Roscoe, Adrian Schupbach, and Akhilesh Singhania, "The Multikernel: A new OS architecture for scalable multicore systems." In Proceedings of the 22nd SOSP, Big Sky, MT, USA, Oct 2009.

PD5 (individuālā projekta) tēmas izvēle (iesūtīt e-pastu).

15.12.2016

Čaula (shell). Lekcijas piezīmes.

22.12.2016

(papildus

tēmas)

OS kļūdas un testēšana. Lekcijas piezīmes.


XFI. Lekcijas piezīmes.


Drošība: OKWS. Lekcijas piezīmes.


Multics un UNIX. Lekcijas piezīmes.


OS servisu abstrakcijas. Lekcijas piezīmes.

xx.12.2016. - 01.01.2017.

Ziemassvētku un Jaungada brīvdienas

xx.01.2017

  • Eksāmens (xx:xx)
  • Projektu demo sesija (kā daļa no eksāmena)

Praktiskie darbi (PD)

  • Kursa beigās jāiesniedz pašnovērtējums. Prezentācija ar 3 slaidiem, kur katrs atbild uz sekojošiem jautājumiem:
    • Kam ieteiktu OSI kursu
    • Ko kursā var apgūt, ko man tas deva, pozitīvais.
    • Kas sagādaja visvairāk grūtības, negatīvais, pārsteigumi.

QUEMU

Praktiskajiem darbiem nepieciešams uzstādīt modificētu QEMU emulatoru. Ubuntu 11.04 vidē tas darāmas sekojoši (paldies Andrejam Vihrovam par piemēru):

binutils, GCC un GDB der jau tie, kas ir Ubuntu [1]. Lai uzstādītu «īpašo» QEMU no MIT kursa lapas, var izpildīt šādus soļus:

sudo apt-get install binutils build-essential 
sudo apt-get install checkinstall
sudo sed -i -e 's/TRANSLATE=1/TRANSLATE=0/' /etc/checkinstallrc
sudo apt-get build-dep qemu-kvm
wget -c http://web.mit.edu/6.828/src/qemu.2010/qemu-0.12.5-6828.2010-08-31.tar.gz
tar xzf qemu-0.12.5-6828.2010-08-31.tar.gz
cd qemu-0.12.5-6828
./configure --target-list="i386-softmmu"
make
sudo checkinstall
cd .. && rm -rf qemu-0.12.5-6828*

Slaidi

Literatūra un xv6

Lekciju lasāmviela un praktiskie darbi atsaucas uz xv6 pirmkodu. Tas ir pieejams divos formātus:

Saites

  • Rīki
  • PDP-11 assemblera piezīmes. Dažos vecākos kursa uzdevumos vai tekstos varētu būt "iezagūšās" PDP asssemblera instrukcijas, piemēram "TST -(SP)".

Interesanti OS projekti un lasāmviela


Citi kursi (ko lasa Leo Seļāvo) LU