Difference between revisions of "LU-OSI-m"
(Redirecting to LU-OSI-m12) |
(→21.05.2019) |
||
(61 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<big> |
|||
#REDIRECT [[LU-OSI-m12]] |
|||
'''Ī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}} |
|||
* 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). |
|||
<!-- * {{KursiGGroup|lu-osi-m}} --> |
|||
{{KursiMD|OSI|50%|10%}} |
|||
* Mājas/praktiskie darbi iesniedzami kā saite uz GIT repozitoriju, piemēram [http://www.github.com github portalā]. Ja mājas darbi balstās uz iepriekšējo, tad iespējams iesniegt saiti uz attiecīgo "branch" repozitorijā. |
|||
== Kalendārs == |
|||
{| border=1 cellspacing=0 cellpadding=4 |
|||
|- |
|||
! Nedēļas datumi |
|||
! Kursa saturs un lasāmviela |
|||
! Darbi un termiņi |
|||
|- |
|||
| |
|||
==== 05.02.2019 ==== |
|||
| |
|||
* Ievads, operētājsistēmas. |
|||
[http://selavo.lv/kursi/osi-m/notes/l1_intro.pdf Lekcijas piezīmes un "case study"]. |
|||
| |
|||
|- |
|||
| |
|||
==== 12.02.2019 ==== |
|||
| |
|||
* PC aparatūra un x86 programmēšana. |
|||
[http://selavo.lv/kursi/osi-m/notes/l2_x86.pdf Lekcijas piezīmes] |
|||
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: [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. |
|||
| |
|||
<!-- * Uzdots mājas darbs [http://selavo.lv/kursi/osi-m/hw/hw1_shell.pdf MD1]: programmēt čaulu --> |
|||
* Pasludināts praktiskais darbs [[LU-OSI-M10:PD#PD1 | PD1]]. |
|||
|- |
|||
| |
|||
==== 19.02.2019 ==== |
|||
| |
|||
* 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]]. |
|||
|- |
|||
| |
|||
==== 26.02.2019 ==== |
|||
| |
|||
* 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-m12#xv6 | xv6]]. |
|||
* 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-m12#xv6 | xv6]]. |
|||
| |
|||
|- |
|||
| |
|||
==== 05.03.2019 ==== |
|||
| |
|||
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-m12#xv6 | xv6]]. |
|||
| |
|||
* [[LU-OSI-M10:PD#PD1 | PD1]] nodošanas '''termiņš'''. |
|||
|- |
|||
| |
|||
==== 12.03.2019 ==== |
|||
| |
|||
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-m12#xv6 | xv6]]. |
|||
[http://www.cis.temple.edu/~ingargio/cis307/readings/spinsem.html Vēl par spinlock-iem, semaforiem un futex] |
|||
| |
|||
* [[LU-OSI-M10:PD#PD2 | PD2]] nodošanas '''termiņš'''. |
|||
|- |
|||
| |
|||
==== 19.03.2019 ==== |
|||
| |
|||
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, swtch.S, un sys_fork (sysproc.c) no [[LU-OSI-m12#xv6 | xv6]]. |
|||
| |
|||
* Pasludināts [[LU-OSI-M10:PD#PD3| PD3]]. |
|||
|- |
|||
| |
|||
==== 26.03.2019 ==== |
|||
| |
|||
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-m12#xv6 | xv6]]. |
|||
| |
|||
* [[LU-OSI-M10:PD#PD3 | PD3-A]] nodošanas '''termiņš'''. |
|||
|- |
|||
| |
|||
==== 02.04.2019 ==== |
|||
| |
|||
* 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-m12#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-m12#xv6 | xv6]]. |
|||
| |
|||
* [[LU-OSI-M10:PD#PD3 | PD3-B]] nodošanas '''termiņš'''. |
|||
* Pasludināts [[LU-OSI-M10:PD#PD4| PD4]]. |
|||
|- |
|||
| |
|||
==== 09.04.2019.==== |
|||
| |
|||
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. |
|||
--> |
|||
| |
|||
|- |
|||
| |
|||
==== 15.04.2019. - 22.04.2019.==== |
|||
| |
|||
''Lieldienu brīvdienas'' |
|||
| |
|||
|- |
|||
| |
|||
==== 23.04.2019 ==== |
|||
| Vidus semestra '''kontroldarbs''' |
|||
| |
|||
|- |
|||
| |
|||
==== 30.04.2019 ==== |
|||
| |
|||
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ņš'''. |
|||
|- |
|||
| |
|||
==== 07.05.2019 ==== |
|||
| |
|||
Mikrokodoli. |
|||
[http://selavo.lv/kursi/osi-m/notes/l15_mkernel.pdf Lekcijas piezīmes]. |
|||
Lasāmviela: [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.40.7556&rep=rep1&type=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ņš'''. |
|||
|- |
|||
| |
|||
==== 14.05.2019 ==== |
|||
| |
|||
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ņš'''. |
|||
|- |
|||
| |
|||
==== 21.05.2019 ==== |
|||
| |
|||
Mērogojama koordinācija. |
|||
[http://selavo.lv/kursi/osi-m/notes/l18_scalablecoord.pdf Lekcijas piezīmes]. |
|||
* 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 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). |
|||
[http://selavo.lv/kursi/osi-m/notes/l19_shell.pdf Lekcijas piezīmes]. |
|||
* Lasāmviela: [http://www.scs.stanford.edu/nyu/04fa/sched/readings/rc.pdf Duff, Tom. "Rc - The Plan 9 Shell."] |
|||
* Lasāmviela: [https://stuff.mit.edu/afs/sipb/user/yandros/doc/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. |
|||
| |
|||
|- |
|||
| |
|||
==== 04.06.2019 ==== |
|||
| |
|||
Kursa nobeiguma kontroldarbs |
|||
| |
|||
KD2 |
|||
|- |
|||
| |
|||
(papildus |
|||
tēmas) |
|||
| |
|||
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. |
|||
| |
|||
|- |
|||
| |
|||
==== 04.06.2019 ==== |
|||
| |
|||
* '''Eksāmens''' 12:30 |
|||
* '''Projektu demo sesija''' (kā daļa no eksāmena) |
|||
| |
|||
Termiņš visiem nodevumiem |
|||
|- |
|||
|} |
|||
== 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]] |
|||
* 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* |
|||
* "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] |
|||
== Literatūra un xv6 == |
|||
* Grāmata: [https://pdos.csail.mit.edu/6.828/2014/xv6/book-rev8.pdf "xv6 - a simple, Unix-like teaching operating system"] |
|||
Lekciju lasāmviela un praktiskie darbi atsaucas uz xv6 pirmkodu. Tas ir pieejams divos formātus: |
|||
* kā [http://selavo.lv/kursi/osi-m/doc/xv6-rev8.pdf PDF fails] |
|||
* kā [http://selavo.lv/kursi/osi-m/doc/xv6-rev8.tar.gz saarhivēta direktorija ar pirmkoda failiem] |
|||
* kā [http://selavo.lv/kursi/osi-m/doc/xv6-rev8/ direktorija ar pirmkoda failiem] |
|||
* [http://selavo.lv/kursi/osi-m/doc/xv6-book-rev8/ Piezīmes par vx6], tematiski organizētas. |
|||
== 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)". |
|||
* [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.] |
|||
** [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/xv6.html Xv6 operētājsistēma |
|||
** [http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-828-operating-system-engineering-fall-2012/lecture-notes-and-readings/ Lecture notes and readings] |
|||
* [https://www.youtube.com/playlist?list=PLfciLKR3SgqNJKKIKUliWoNBBH1VHL3AP MIT lekciju video] |
|||
=== Interesanti OS projekti un lasāmviela === |
|||
* [http://wiki.osdev.org/Main_Page OSDev Wiki] |
|||
* [http://bit.ly/V4E8xX Baking Pi] - how to write an OS for Raspberry Pi |
|||
* [http://gusc.lv/2012/11/im-writing-my-own-os/ Gusc writing his own OS] - check the comments - have interesting sources |
|||
---- |
|||
''[[Leo:Kursi | '''Citi kursi''']] (ko lasa Leo Seļāvo) LU'' |
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.
- 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 |
|
|
12.02.2019 |
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. |
|
19.02.2019 |
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 |
Lekcijas piezīmes. Lasāmviela: bootasm.S, bootother.S, bootmain.c, main.c, un init.c no xv6.
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. |
|
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 |
|
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 |
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. |
|
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).
|
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.
|
|
04.06.2019 |
|
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*
- "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
Literatūra un 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)".
- MIT OCW kurss kurš kalpo kā pamats mūsu kursam
- MIT lekciju video
Interesanti OS projekti un lasāmviela
- OSDev Wiki
- Baking Pi - how to write an OS for Raspberry Pi
- Gusc writing his own OS - check the comments - have interesting sources
Citi kursi (ko lasa Leo Seļāvo) LU