Difference between revisions of "LU-OSI-m"

From DiLab
Jump to: navigation, search
(09.04.2019.)
(30.04.2019)
(12 intermediate revisions by the same user not shown)
Line 138: Line 138:
  
 
Lasāmviela: [http://pdos.csail.mit.edu/6.828/2009/readings/journal-design.pdf Journaling the Linux ext2fs Filesystem]
 
Lasāmviela: [http://pdos.csail.mit.edu/6.828/2009/readings/journal-design.pdf Journaling the Linux ext2fs Filesystem]
 
 
<!--
 
<!--
 
* [http://pdos.csail.mit.edu/6.097/readings/journal-softupdate.pdf Ganger, Gregory R., M. Kirk McKusick, Craig A. N. Soules, and Yale N. Patt. "Soft Updates: A Solution to the Metadata Update Problem in File Systems."] ACM Transactions on Computer Systems 18, 2 (May 2000): 127-153.
 
* [http://pdos.csail.mit.edu/6.097/readings/journal-softupdate.pdf Ganger, Gregory R., M. Kirk McKusick, Craig A. N. Soules, and Yale N. Patt. "Soft Updates: A Solution to the Metadata Update Problem in File Systems."] ACM Transactions on Computer Systems 18, 2 (May 2000): 127-153.
 
-->
 
-->
 
 
|
 
|
 
|-
 
|-
 
|
 
|
  
==== 15.04.2019. - 23.04.2019.====
+
==== 15.04.2019. - 22.04.2019.====
 
|  
 
|  
 
''Lieldienu brīvdienas''
 
''Lieldienu brīvdienas''
Line 154: Line 152:
 
|
 
|
  
==== 30.04.2019 ====  
+
==== 23.04.2019 ====  
 
| Vidus semestra '''kontroldarbs'''
 
| Vidus semestra '''kontroldarbs'''
 
|
 
|
[[LU-OSI-M10:PD#PD4 | PD4-A]] nodošanas '''termiņš'''.
 
 
 
|-
 
|-
|  
+
|
==== 07.05.2019 ====  
+
==== 30.04.2019 ====  
 
|  
 
|  
 
Plānošana (scheduling).
 
Plānošana (scheduling).
Line 172: Line 168:
  
 
|-
 
|-
|  
+
|
==== 14.05.2019 ====  
+
 
 +
==== 07.05.2019 ====  
 
|  
 
|  
 
Mikrokodoli.
 
Mikrokodoli.
Line 183: Line 180:
  
 
|-
 
|-
|  
+
|
==== 21.05.2019 ====  
+
 
 +
==== 14.05.2019 ====  
 
|  
 
|  
  
Line 198: Line 196:
 
[[LU-OSI-M10:PD#PD4 | PD4]] visu daļu nodošanas '''termiņš'''.
 
[[LU-OSI-M10:PD#PD4 | PD4]] visu daļu nodošanas '''termiņš'''.
 
|-
 
|-
|  
+
|
==== 28.05.2019 ====  
+
 
 +
==== 21.05.2019 ====  
 
|
 
|
  
Line 215: Line 214:
 
|
 
|
  
==== xx.05.2019 ====  
+
==== 28.05.2019 ====  
 
|  
 
|  
 
Čaula (shell).
 
Čaula (shell).
Line 226: Line 225:
 
|
 
|
  
==== xx.06.2019 ====  
+
==== 04.06.2019 ====  
 
|
 
|
 
Kursa nobeiguma kontroldarbs
 
Kursa nobeiguma kontroldarbs
Line 271: Line 270:
 
|
 
|
  
==== xx.06.2019 ====  
+
==== 04.06.2019 ====  
 
|
 
|
 
* '''Eksāmens''' 12:30
 
* '''Eksāmens''' 12:30
Line 296: Line 295:
 
== QEMU ==
 
== QEMU ==
 
Praktiskajiem darbiem nepieciešams uzstādīt modificētu QEMU emulatoru.
 
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):
+
Ubuntu 11.04 vidē tas darāmas sekojoši:
  
 
binutils, GCC un GDB der jau tie, kas ir Ubuntu [1]. Lai uzstādītu
 
binutils, GCC un GDB der jau tie, kas ir Ubuntu [1]. Lai uzstādītu
Line 339: Line 338:
 
* [http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/ MIT OCW kurss] kurš kalpo kā pamats mūsu kursam
 
* [http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/ MIT OCW kurss] kurš kalpo kā pamats mūsu kursam
 
** [http://pdos.csail.mit.edu/6.828/2014 Analogs kurss MIT 2014.g.]
 
** [http://pdos.csail.mit.edu/6.828/2014 Analogs kurss MIT 2014.g.]
 +
** [https://pdos.csail.mit.edu/6.828/2018 Analogs kurss MIT 2018.g.]
 
** [https://pdos.csail.mit.edu/6.828/2016/reference.html References]
 
** [https://pdos.csail.mit.edu/6.828/2016/reference.html References]
 
** [https://pdos.csail.mit.edu/6.828/2016/xv6.html Xv6 operētājsistēma
 
** [https://pdos.csail.mit.edu/6.828/2016/xv6.html Xv6 operētājsistēma

Revision as of 12:41, 9 April 2019

Īsceļi: Kalendārs | PD | QEMU | Slaidi | Literatūra | Saites

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% aktīva dalība kursā, 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.
  • Ja darbs iesniedzams e-pastā, tad Subj. jānorāda sekojošā formā "OSI MD1 Vards Uzvards" - piemērs MD1 iesniegumam.
  • 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.


  • Mājas/praktiskie darbi iesniedzami kā saite uz GIT repozitoriju, piemēram github portalā. Ja mājas darbi balstās uz iepriekšējo, tad iespējams iesniegt saiti uz attiecīgo "branch" repozitorijā.


Kalendārs

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

05.02.2019

  • Ievads, operētājsistēmas.

Lekcijas piezīmes un "case study".

12.02.2019

  • 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.

19.02.2019

  • 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.

26.02.2019

  • 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.

05.03.2019

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

  • PD1 nodošanas termiņš.

12.03.2019

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ņš.

19.03.2019

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.

26.03.2019

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

02.04.2019

  • 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.

09.04.2019.

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

Lasāmviela: Journaling the Linux ext2fs Filesystem

15.04.2019. - 22.04.2019.

Lieldienu brīvdienas

23.04.2019

Vidus semestra kontroldarbs

30.04.2019

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ņš.

07.05.2019

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ņš.

14.05.2019

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ņš.

21.05.2019

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

22nd SOSP, Big Sky, MT, USA, Oct 2009.

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

28.05.2019

Čaula (shell). Lekcijas piezīmes.

04.06.2019

Kursa nobeiguma kontroldarbs

KD2

(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.

04.06.2019

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

Termiņš visiem nodevumiem

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.

QEMU

Praktiskajiem darbiem nepieciešams uzstādīt modificētu QEMU emulatoru. Ubuntu 11.04 vidē tas darāmas sekojoši:

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