Difference between revisions of "LU-OSI-m11"
 (→Kalendārs)  | 
				|||
| (7 intermediate revisions by the same user not shown) | |||
| Line 9: | Line 9: | ||
{{KursiMD|OSI|50%|10%}}  | 
  {{KursiMD|OSI|50%|10%}}  | 
||
== Kalendārs ==  | 
  == Kalendārs ==  | 
||
{| border=1 cellspacing=0 cellpadding=4  | 
|||
== MD ==  | 
  |||
|-  | 
|||
! Nedēļas datumi   | 
|||
! Kursa saturs un lasāmviela  | 
|||
! Darbi un termiņi  | 
|||
|-  | 
|||
| 08.09.2011  | 
|||
| Ievads, operētājsistēmas.   | 
|||
[http://selavo.lv/kursi/osi-m/notes/l1_intro.pdf Lekcijas piezīmes un "case study"].  | 
|||
| Pasludināts praktiskais darbs [[LU-OSI-M10:PD#PD1 | PD1]].  | 
|||
|-  | 
|||
| 08.09.2011  | 
|||
| PC aparatūra un x86 programmēšana.   | 
|||
[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://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.  | 
|||
|   | 
|||
|-  | 
|||
| 15.09.2011  | 
|||
| OS organizācija.   | 
|||
[http://selavo.lv/kursi/osi-m/notes/l3_os_org.pdf Lekcijas piezīmes]  | 
|||
Lasāmviela: [http://www.cs.utexas.edu/users/dahlin/Classes/UGOS/reading/engler95exokernel.pdf 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.  | 
|||
|  | 
|||
Pasludināts [[LU-OSI-M10:PD#PD2 | PD2]].  | 
|||
|-  | 
|||
| 22.09.2011   | 
|||
|   | 
|||
Adrešu apgabali lietojot segmentāciju.  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l4_segmentation.pdf Lekcijas piezīmes].  | 
|||
Lasāmviela: bootasm.S, bootother.S, bootmain.c, main.c, un init.c no [[LU-OSI-M10:index#xv6 | xv6]].  | 
|||
|  | 
|||
|-  | 
|||
| 22.09.2011   | 
|||
|   | 
|||
Adrešu apgabali lietojot adrešu tabulas.  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l5_page_tables.pdf Lekcijas piezīmes].  | 
|||
Lasāmviela: setupsegs no [[LU-OSI-M10:index#xv6 | xv6]].  | 
|||
|  | 
|||
|-  | 
|||
| 29.09.2011   | 
|||
|   | 
|||
Pārtraukumu un izņēmumu (exception) apstrāde.  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l6_interrupt.pdf Lekcijas piezīmes].  | 
|||
Lasāmviela: trapasm.S, trap.c, syscall.c, un usys.S no [[LU-OSI-M10:index#xv6 | xv6]].  | 
|||
|  | 
|||
[[LU-OSI-M10:PD#PD1 | PD1]] nodošanas '''termiņš'''.  | 
|||
|-  | 
|||
| 06.10.2011   | 
|||
|   | 
|||
Daudzprocesoru vides un slēgšanas mehānismi (locking).  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l7_lock.pdf Lekcijas piezīmes].  | 
|||
Lasāmviela: spinlock.c un pārskatīt mp.c  no [[LU-OSI-M10:index#xv6 | xv6]].  | 
|||
[http://www.cis.temple.edu/~ingargio/cis307/readings/spinsem.html Vēl par spinlock-iem, semaforiem un futex]  | 
|||
|  | 
|||
|-  | 
|||
| 13.10.2011   | 
|||
|   | 
|||
Pavedieni, procesi un konteksta pārslēgšanās.  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l8_threads.pdf Lekcijas piezīmes].  | 
|||
Lasāmviela: proc.c, setjmp.S, un sys_fork (sysproc.c) no [[LU-OSI-M10:index#xv6 | xv6]].  | 
|||
|  | 
|||
* [[LU-OSI-M10:PD#PD2 | PD2]] nodošanas '''termiņš'''.  | 
|||
* Pasludināts [[LU-OSI-M10:PD#PD3| PD3]].  | 
|||
|-  | 
|||
| 20.10.2011   | 
|||
|   | 
|||
Procesi un koordinācija.  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l9_coordination.pdf Lekcijas piezīmes].  | 
|||
Lasāmviela: proc.c, sys_exec, sys_sbrk, sys_wait, sys_exit, un sys_kill no [[LU-OSI-M10:index#xv6 | xv6]].  | 
|||
|  | 
|||
* [[LU-OSI-M10:PD#PD3 | PD3-A]] nodošanas '''termiņš'''.  | 
|||
|-  | 
|||
| 27.10.2011   | 
|||
|   | 
|||
* Faili un disku ievads/izvads.  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l10_fs.pdf 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 [[LU-OSI-M10:index#xv6 | xv6]].  | 
|||
* Vārdu piešķiršana (naming).  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l11_name.pdf Lekcijas piezīmes].  | 
|||
Lasāmviela: namei un pārējo no fs.c, sysfile.c un file.c no [[LU-OSI-M10:index#xv6 | xv6]].  | 
|||
|  | 
|||
* [[LU-OSI-M10:PD#PD3 | PD3-B]] nodošanas '''termiņš'''.  | 
|||
* Pasludināts [[LU-OSI-M10:PD#PD4| PD4]].  | 
|||
|-  | 
|||
| 03.11.2011  | 
|||
| Vidus semestra '''kontroldarbs'''  | 
|||
|   | 
|||
|-  | 
|||
| 10.11.2011  | 
|||
|   | 
|||
Augstas veiktspējas failu sistēmas.  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l12_hi_perf_fs.pdf Lekcijas piezīmes].  | 
|||
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.  | 
|||
-->  | 
|||
|  | 
|||
[[LU-OSI-M10:PD#PD4 | PD4-A]] nodošanas '''termiņš'''.  | 
|||
|-  | 
|||
| 24.11.2011  | 
|||
|   | 
|||
Plānošana (scheduling).  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l17_schedule.pdf Lekcijas piezīmes].  | 
|||
Lasāmviela: [http://www.cs.brown.edu/courses/cs161/papers/livelock.pdf 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.  | 
|||
|  | 
|||
[[LU-OSI-M10:PD#PD4 | PD4-B]] nodošanas '''termiņš'''.  | 
|||
|-  | 
|||
| 01.12.2011  | 
|||
|   | 
|||
Mikrokodoli.  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l15_mkernel.pdf Lekcijas piezīmes].  | 
|||
Lasāmviela: [http://l4ka.org/publications/1993/improving-ipc.pdf Liedtke, Jochen. "Improving IPC by Kernel Design."] 14th ACM Symposium on Operating System Principles (SOSP). Asheville, North Carolina: 5-8 December 1993.  | 
|||
|   | 
|||
[[LU-OSI-M10:PD#PD4 | PD4-C]] nodošanas '''termiņš'''.  | 
|||
|-  | 
|||
| 08.12.2011  | 
|||
|   | 
|||
Virtuālās mašīnas.  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l16b_vm2.pdf Lekcijas piezīmes 2010].  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l16_vm.pdf Lekcijas piezīmes 2009 (atsaucās uz "Disco" publikāciju)].  | 
|||
Lasāmviela: Keith Adams, Ole Agesen, [http://selavo.lv/kursi/osi-m/doc/adams06vmware.pdf "A Comparison of Software and Hardware Techniques for x86 Virtualization"] (VMware).  | 
|||
Lasāmviela (neobligāta): [http://www-flash.stanford.edu/~bugnion/Disco/sosp-html/ 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.  | 
|||
|   | 
|||
[[LU-OSI-M10:PD#PD4 | PD4]] visu daļu nodošanas '''termiņš'''.  | 
|||
|-  | 
|||
| 15.12.2011  | 
|||
| Praktiskie darbi neklātienē.  | 
|||
|   | 
|||
|-  | 
|||
| 22.12.2011  | 
|||
|   | 
|||
Mērogojama koordinācija.  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l18_scalablecoord.pdf Lekcijas piezīmes].  | 
|||
Lasāmviela: [http://www.cs.rice.edu/~johnmc/papers/tocs91.pdf Mellor-Crummey, John M., and Michael L. Scott. "Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors."] ACM Transactions on Computer Systems 9, no. 1 (January 1991): 21-65.  | 
|||
|  | 
|||
|-  | 
|||
| xx.xx.xx  | 
|||
(papildus  | 
|||
tēmas)  | 
|||
|   | 
|||
Čaula (shell).  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l19_shell.pdf Lekcijas piezīmes].  | 
|||
* Lasāmviela: [http://plan9.bell-labs.com/sys/doc/rc.pdf Duff, Tom. "Rc - The Plan 9 Shell."]  | 
|||
* Lasāmviela: [http://192.220.96.201/es/es-usenix-winter93.html Haahr, Paul, and Byron Rakitzis. "Es: A Shell with Higher-order Functions."] In USENIX Technical Conference Proceedings (Winter 1993): 51-60.  | 
|||
OS kļūdas un testēšana.  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l22_bugs.pdf Lekcijas piezīmes].  | 
|||
* Lasāmviela: [http://stanford.edu/~engler/deviant-sosp-01.pdf Engler, Dawson, David Yu Chen, Seth Hallem, Andy Chou, and Benjamin Chelf. "Bugs as Deviant Behavior: A General Approach to Inferring Errors in Systems Code."] Symposium on Operating Systems Principles. Stanford, CA: Computer Systems Laboratory, Stanford University, 2001, pp. 57-72.  | 
|||
* Lasāmviela: [http://pdos.csail.mit.edu/6.097/readings/osbugs.pdf Andy Chou, Junfeng Yang, Benjamin Chelf, Seth Hallem, and Dawson Engler. "An Empirical Study of Operating Systems Errors."]  | 
|||
XFI.  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l21_xfi.pdf Lekcijas piezīmes].  | 
|||
* Lasāmviela: [http://research.microsoft.com/pubs/64368/xfi.pdf Erlingsson, Úlfar, Martín Abadi, Michael Vrable, Mihai budiu, and George C. Necula. "XFI: Software Guards for System Address Spaces."] Presented at the Symposium on Operating System Design and Implementation (OSDI), Seattle, WA, November 6-8, 2006.  | 
|||
Drošība: OKWS.  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l20_okws.pdf Lekcijas piezīmes].  | 
|||
* Lasāmviela: [http://www.usenix.org/event/usenix04/tech/general/full_papers/krohn/krohn.pdf Krohn, Maxwell. "Building Secure High-Performance Web Services with OKWS."] In Proceedings of the USENIX 2004 Technical Conference. Boston, MA: June 27-July 2, 2004, pp. 185-198.  | 
|||
Multics un UNIX.  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l13_multics.pdf Lekcijas piezīmes].  | 
|||
* Lasāmviela: [http://www.multicians.org/f7y.html Corbató, F. J., J. H. Saltzer, and C. T. Clingen. Multics - The First Seven Years.] Presented at the Spring Joint Computer Conference, 1972. Montvale, NJ: The American Federation of Information Processing Societies Press, 1972.  | 
|||
OS servisu abstrakcijas.  | 
|||
[http://selavo.lv/kursi/osi-m/notes/l14_plan9.pdf Lekcijas piezīmes].  | 
|||
* Lasāmviela: [http://doc.cat-v.org/plan_9/4th_edition/papers/9 Pike, Rob, Dave Presotto, Sean Dorward, Bob Flandrena, Ken Thompson, Howard Trickey, and Phil Winterbottom. Plan 9.] 4th ed. Murray Hill, NJ: Bell Laboratories.  | 
|||
|  | 
|||
|-  | 
|||
| 24.12.2011. - 01.01.2012.  | 
|||
| Ziemassvētku un Jaungada brīvdienas  | 
|||
|  | 
|||
|-  | 
|||
| 19.01.2012  | 
|||
| '''Projektu demo sesija''' (12:30, kā daļa no eksāmena)  | 
|||
|  | 
|||
|-  | 
|||
| 19.01.2012  | 
|||
| '''Eksāmens''' (12:30)  | 
|||
|  | 
|||
|-  | 
|||
|}  | 
|||
== Praktiskie darbi (PD) ==  | 
|||
* [[LU-OSI-M10:PD#PD1 | PD1]]  | 
|||
* [[LU-OSI-M10:PD#PD2 | PD2]]  | 
|||
* [[LU-OSI-M10:PD#PD3 | PD3]]  | 
|||
* [[LU-OSI-M10:PD#PD4 | PD4]]  | 
|||
* [[LU-OSI-M10:PD#PD5 | PD5]]  | 
|||
* [[LU-OSI-M10:PD#PD6 | PD6]]  | 
|||
== 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*  | 
|||
* "sed" rinda ir tāpēc: https://bugs.launchpad.net/ubuntu/+source/checkinstall/+bug/815506  | 
|||
* Pēdējam checkinstal var atbildēt "n", "<enter>", "<enter>"  | 
|||
== Slaidi ==  | 
|||
* [http://jupiter.cs.fmf.lu.lv/kursi/osi-m/slides/osi01_intro.pdf Ievadlekcija, operetajsistēmas]  | 
|||
* [http://jupiter.cs.fmf.lu.lv/kursi/osi-m/slides/osi02_x86-arch.pdf X86 arhitektūra]  | 
|||
* [http://jupiter.cs.fmf.lu.lv/kursi/osi-m/slides/osi04_segmentation.pdf Adrešu segmentācija, virtuālās adreses un adrešu tabulas]  | 
|||
* [http://jupiter.cs.fmf.lu.lv/kursi/osi-m/slides/osi13_multics.pdf Multics]  | 
|||
== xv6 ==  | 
|||
Lekciju lasāmviela un praktiskie darbi atsaucas uz xv6 pirmkodu. Tas ir pieejams divos formātus:  | 
|||
* kā [http://jupiter.cs.fmf.lu.lv/kursi/osi-m/doc/xv6-rev4.pdf PDF fails]  | 
|||
* kā [http://jupiter.cs.fmf.lu.lv/kursi/osi-m/doc/xv6-rev4.tar.gz saarhivēta direktorija ar pirmkoda failiem]  | 
|||
* kā [http://jupiter.cs.fmf.lu.lv/kursi/osi-m/doc/xv6-rev4/ direktorija ar pirmkoda failiem]  | 
|||
* [http://jupiter.cs.fmf.lu.lv/kursi/osi-m/doc/xv6-book-rev4/ Piezīmes par vx6], tematiski organizētas.  | 
|||
== Saites ==  | 
  == Saites ==  | 
||
* [[OSI-M_Tools | Rīki]]  | 
|||
* [http://www.dgp.toronto.edu/~ajr/258/notes/pdp11.html 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)".  | 
|||
----  | 
|||
''[[Leo:Kursi | '''Citi kursi''']] (ko lasa Leo Seļāvo) LU''  | 
|||
Latest revision as of 14:16, 15 December 2011
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ēstkopa komunikācijai par kursa aktualitātēm, uzdevumiem, termiņiem un problēmām:
- Google grupa lu-osi-m@googlegroups.com Lai pieteiktos, sekot http://groups.google.lv/group/lu-osi-m un pieslēgties ar savu google kontu, vai arī sūtīt epastu pasniedzējam.
 
 
- 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.2011 | Ievads, operētājsistēmas. | Pasludināts praktiskais darbs PD1. | 
| 08.09.2011 | PC aparatūra un x86 programmēšana.
 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.  | 
|
| 15.09.2011 | OS organizācija.
 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.  | 
 Pasludināts PD2.  | 
| 22.09.2011 | 
 Adrešu apgabali lietojot segmentāciju. Lekcijas piezīmes. Lasāmviela: bootasm.S, bootother.S, bootmain.c, main.c, un init.c no xv6.  | 
|
| 22.09.2011 | 
 Adrešu apgabali lietojot adrešu tabulas. Lekcijas piezīmes. Lasāmviela: setupsegs no xv6.  | 
|
| 29.09.2011 | 
 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ņš.  | 
| 06.10.2011 | 
 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  | 
|
| 13.10.2011 | 
 Pavedieni, procesi un konteksta pārslēgšanās. Lekcijas piezīmes. Lasāmviela: proc.c, setjmp.S, un sys_fork (sysproc.c) no xv6.  | 
|
| 20.10.2011 | 
 Procesi un koordinācija. Lekcijas piezīmes. Lasāmviela: proc.c, sys_exec, sys_sbrk, sys_wait, sys_exit, un sys_kill no xv6.  | 
  | 
| 27.10.2011 | 
 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. 
 Lekcijas piezīmes. Lasāmviela: namei un pārējo no fs.c, sysfile.c un file.c no xv6.  | 
|
| 03.11.2011 | Vidus semestra kontroldarbs | |
| 10.11.2011 | 
 Augstas veiktspējas failu sistēmas. Lekcijas piezīmes. Lasāmviela: Journaling the Linux ext2fs Filesystem 
  | 
 PD4-A nodošanas termiņš.  | 
| 24.11.2011 | 
 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ņš.  | 
| 01.12.2011 | 
 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ņš.  | 
| 08.12.2011 | 
 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). 
  | 
 PD4 visu daļu nodošanas termiņš.  | 
| 15.12.2011 | Praktiskie darbi neklātienē. | |
| 22.12.2011 | 
 Mērogojama koordinācija. Lekcijas piezīmes. Lasāmviela: Mellor-Crummey, John M., and Michael L. Scott. "Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors." ACM Transactions on Computer Systems 9, no. 1 (January 1991): 21-65.  | 
|
| xx.xx.xx
 (papildus tēmas)  | 
 Čaula (shell). Lekcijas piezīmes. 
 OS kļūdas un testēšana. Lekcijas piezīmes. 
 
 
 
 
 
 
 
 
  | 
|
| 24.12.2011. - 01.01.2012. | Ziemassvētku un Jaungada brīvdienas | |
| 19.01.2012 | Projektu demo sesija (12:30, kā daļa no eksāmena) | |
| 19.01.2012 | Eksāmens (12:30) | 
Praktiskie darbi (PD)
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*
- "sed" rinda ir tāpēc: https://bugs.launchpad.net/ubuntu/+source/checkinstall/+bug/815506
 - Pēdējam checkinstal var atbildēt "n", "<enter>", "<enter>"
 
Slaidi
- Ievadlekcija, operetajsistēmas
 - X86 arhitektūra
 - Adrešu segmentācija, virtuālās adreses un adrešu tabulas
 - Multics
 
xv6
Lekciju lasāmviela un praktiskie darbi atsaucas uz xv6 pirmkodu. Tas ir pieejams divos formātus:
- kā PDF fails
 - kā saarhivēta direktorija ar pirmkoda failiem
 - kā direktorija ar pirmkoda failiem
 - Piezīmes par vx6, tematiski organizētas.
 
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)".
 
Citi kursi (ko lasa Leo Seļāvo) LU