Difference between revisions of "LU-OSI-m"

From DiLab
Jump to: navigation, search
(05.03.2018)
(21.05.2019)
 
(29 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
<big>
 +
'''Īsceļi:'''
 +
[[#Kalendārs | Kalendārs]] |
 +
[[#Praktiskie darbi (PD) | PD]] |
 +
[[#QEMU | QEMU]] |
 +
[[#Slaidi | Slaidi]] |
 +
[[#Literatūra un xv6 | Literatūra]] |
 +
[[#Saites | Saites]]
 +
</big>
 
{{LUDFKurss|Operētājsistēmu inženierija|OSI|DatZ5048|2DAT5244|maģistru un doktorantu}}
 
{{LUDFKurss|Operētājsistēmu inženierija|OSI|DatZ5048|2DAT5244|maģistru un doktorantu}}
  
 
* Pasniedzējs: Leo Seļāvo ''(epasts: vards.uzvards @ gmail.com)''
 
* Pasniedzējs: Leo Seļāvo ''(epasts: vards.uzvards @ gmail.com)''
 
* {{KursiGGroup|lu-osi-m}}
 
 
 
* Vērtējums = 40% mājas un praktiskie darbi, 10% aktīva dalība kursā, 20% KD1 un 30% KD2(eksāmens).
 
* Vērtējums = 40% mājas un praktiskie darbi, 10% aktīva dalība kursā, 20% KD1 un 30% KD2(eksāmens).
 +
<!-- * {{KursiGGroup|lu-osi-m}} -->
  
  
Line 22: Line 29:
 
|-
 
|-
 
|  
 
|  
==== 05.02.2018 ====
+
==== 05.02.2019 ====
 
|
 
|
 
* Ievads, operētājsistēmas.  
 
* Ievads, operētājsistēmas.  
Line 30: Line 37:
 
|-
 
|-
 
|  
 
|  
==== 12.02.2018 ====
+
==== 12.02.2019 ====
 
|
 
|
 
* PC aparatūra un x86 programmēšana.  
 
* PC aparatūra un x86 programmēšana.  
 
[http://selavo.lv/kursi/osi-m/notes/l2_x86.pdf Lekcijas piezīmes]
 
[http://selavo.lv/kursi/osi-m/notes/l2_x86.pdf Lekcijas piezīmes]
  
Lasāmviela: [http://www.drpaulcarter.com/pcasm/ Carter, Paul A. PC Assembly Language]. July 23, 2006. (Piezīme: nelasīt 5, 6, and 7.2. nodaļas)
+
Lasāmviela: [http://pacman128.github.io/pcasm/ Carter, Paul A. PC Assembly Language]. July 23, 2006. (Piezīme: nelasīt 5, 6, and 7.2. nodaļas)
  
Lasāmviela: [http://www.cs.utexas.edu/~mwalfish/classes/f09-cs395t/ref/ritchie84.pdf 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.
+
Lasāmviela: [https://cs.nyu.edu/~mwalfish/classes/15fa/ref/ritchie84.pdf 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.
  
 
|  
 
|  
Line 45: Line 52:
 
|
 
|
  
==== 19.02.2018 ====
+
==== 19.02.2019 ====
 
|  
 
|  
 
* OS organizācija.  
 
* OS organizācija.  
Line 56: Line 63:
 
|
 
|
  
==== 26.02.2018 ====  
+
==== 26.02.2019 ====  
 
|  
 
|  
 
* Adrešu apgabali lietojot segmentāciju.
 
* Adrešu apgabali lietojot segmentāciju.
Line 69: Line 76:
 
|
 
|
  
==== 05.03.2018 ====
+
==== 05.03.2019 ====
 
|  
 
|  
 
Pārtraukumu un izņēmumu (exception) apstrāde.
 
Pārtraukumu un izņēmumu (exception) apstrāde.
Line 75: Line 82:
 
Lasāmviela: trapasm.S, trap.c, syscall.c, un usys.S no [[LU-OSI-m12#xv6 | xv6]].
 
Lasāmviela: trapasm.S, trap.c, syscall.c, un usys.S no [[LU-OSI-m12#xv6 | xv6]].
 
|
 
|
[[LU-OSI-M10:PD#PD1 | PD1]] nodošanas '''termiņš'''.
+
* [[LU-OSI-M10:PD#PD1 | PD1]] nodošanas '''termiņš'''.
 
|-
 
|-
 
|
 
|
  
==== 12.03.2018 ====  
+
==== 12.03.2019 ====  
 
|  
 
|  
 
Daudzprocesoru vides un slēgšanas mehānismi (locking).
 
Daudzprocesoru vides un slēgšanas mehānismi (locking).
Line 90: Line 97:
 
|
 
|
  
==== 19.03.2018 ====
+
==== 19.03.2019 ====
 
|  
 
|  
 
Pavedieni, procesi un konteksta pārslēgšanās.
 
Pavedieni, procesi un konteksta pārslēgšanās.
Line 100: Line 107:
 
|
 
|
  
==== 26.03.2018. - 02.04.2018.====
+
==== 26.03.2019 ====  
|
 
''Lieldienu brīvdienas''
 
|
 
|-
 
|
 
 
 
==== 09.04.2018 ====  
 
 
|  
 
|  
 
Procesi un koordinācija.
 
Procesi un koordinācija.
Line 115: Line 115:
 
* [[LU-OSI-M10:PD#PD3 | PD3-A]] nodošanas '''termiņš'''.
 
* [[LU-OSI-M10:PD#PD3 | PD3-A]] nodošanas '''termiņš'''.
 
|-
 
|-
|  
+
|
==== 18.04.2018 ====  
+
 
 +
==== 02.04.2019 ====  
 
|
 
|
 
* Faili un disku ievads/izvads.
 
* Faili un disku ievads/izvads.
Line 131: Line 132:
 
|
 
|
  
==== 23.04.2018 ====  
+
==== 09.04.2019.====
 
|  
 
|  
 
Augstas veiktspējas failu sistēmas.
 
Augstas veiktspējas failu sistēmas.
Line 137: 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. - 22.04.2019.====
 
|  
 
|  
 +
''Lieldienu brīvdienas''
 +
|
 
|-
 
|-
|  
+
|
==== 30.04.2018 ====  
+
 
 +
==== 23.04.2019 ====  
 
| Vidus semestra '''kontroldarbs'''
 
| Vidus semestra '''kontroldarbs'''
 
|
 
|
[[LU-OSI-M10:PD#PD4 | PD4-A]] nodošanas '''termiņš'''.
 
 
 
|-
 
|-
|  
+
|
==== 07.05.2018 ====  
+
==== 30.04.2019 ====  
 
|  
 
|  
 
Plānošana (scheduling).
 
Plānošana (scheduling).
Line 163: Line 168:
  
 
|-
 
|-
|  
+
|
==== 14.05.2018 ====  
+
 
 +
==== 07.05.2019 ====  
 
|  
 
|  
 
Mikrokodoli.
 
Mikrokodoli.
Line 174: Line 180:
  
 
|-
 
|-
|  
+
|
==== 21.05.2018 ====  
+
 
 +
==== 14.05.2019 ====  
 
|  
 
|  
  
Line 189: 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.2018 ====  
+
 
 +
==== 21.05.2019 ====  
 
|
 
|
  
Line 198: Line 206:
 
* Lasāmviela: Mellor-Crummey, John M., and Michael L. Scott. [http://www.cs.rice.edu/~johnmc/papers/tocs91.pdf "Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors."] ACM Transactions on Computer Systems 9, no. 1 (January 1991): 21-65.
 
* Lasāmviela: Mellor-Crummey, John M., and Michael L. Scott. [http://www.cs.rice.edu/~johnmc/papers/tocs91.pdf "Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors."] ACM Transactions on Computer Systems 9, no. 1 (January 1991): 21-65.
  
* Lasāmviela (papildus): Andrew Baumann, Paul Barhamy, Pierre-Evariste Dagandz, Tim Harrisy, Rebecca Isaacsy, Simon Peter, Timothy Roscoe, Adrian Schupbach, and Akhilesh Singhania, [http://www.sigops.org/sosp/sosp09/papers/baumann-sosp09.pdf "The Multikernel: A new OS architecture for scalable multicore systems."] In Proceedings of the
+
* Lasāmviela (papildus): Andrew Baumann, Paul Barhamy, Pierre-Evariste Dagandz, Tim Harrisy, Rebecca Isaacsy, Simon Peter, Timothy Roscoe, Adrian Schupbach, and Akhilesh Singhania, [http://www.sigops.org/sosp/sosp09/papers/baumann-sosp09.pdf "The Multikernel: A new OS architecture for scalable multicore systems."] In Proceedings of the 22nd SOSP, Big Sky, MT, USA, Oct 2009.
22nd SOSP, Big Sky, MT, USA, Oct 2009.
 
  
 
|  
 
|  
Line 206: Line 213:
 
|
 
|
  
==== xx.05.2018 ====  
+
==== 28.05.2019 ====  
 
|  
 
|  
 
Čaula (shell).
 
Čaula (shell).
Line 217: Line 224:
 
|
 
|
  
==== xx.06.2018 ====  
+
==== 04.06.2019 ====  
 
|
 
|
 
Kursa nobeiguma kontroldarbs
 
Kursa nobeiguma kontroldarbs
Line 262: Line 269:
 
|
 
|
  
==== xx.06.2018 ====  
+
==== 04.06.2019 ====  
 
|
 
|
 
* '''Eksāmens''' 12:30
 
* '''Eksāmens''' 12:30
Line 287: Line 294:
 
== 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 330: Line 337:
 
* [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

Latest revision as of 10:16, 21 May 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.

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