Till KTH:s startsida Till KTH:s startsida

Experiments

Here are a set of experiments that you should complete during the course. They will help you to understand the concepts that we discuss during the lectures. You do not need to hand in a report but you're encouraged to write a small four page summary of your findings. The exam will have questions related to these experiments; questions that will be quite easy to understand if you have done the experiments but rather hard to solve if you have not done them.

All experiments are done programming in C, using gcc,  on a 64 bit  Linux system. You can more or less easily  adapt them to Os X, Windows or some other operating system or compiler but it is encouraged to instead install a virtual machine and boot it up with a Linux system. You should after the course be able to use a regular shell and some of the most basic operations. The best way to learn this is to actually use them so open up a shell and start practicing.

Processes

Experiment related to processes, what they look like and how they are created. These are best done in conjunction with lectures 3 and 4. The assignments, or tutorials, will give you a much better understanding of the process and how it is related to the kernel.

Virtual memory

Memory visualization is covered in lectures 5 through 8. These experiments with the algorithms used for memory management and see how important it is with some hardware support.

Concurrency

Concurrency is covered in lecture 9 and 10.

File systems

Files systems and persistent storage is covered in lectures 11 through 13. You will here explore both the performance of secondary storage and how the file system is constructed.

Teacher Johan Montelius created page 14 August 2016

Johan Montelius edited 9 September 2016

Here are a set of experiments that you should complete during the course. They will help you to understand the concepts that we discuss during the lectures. You do not need to hand in a report but you're encouraged to write a small four page summary of your findings. The exam will have questions related to these experiments; questions that will be quite easy to understand if you have done the experiments but rather hard to solve if you have not done them.

All experiments are done programming in C, using gcc,  on a 64 bit  Linux system. You can more or less easily  adapt them to Os X, Windows or some other operating system or compiler but it is encouraged to instead install a virtual machine and boot it up with a Linux system. You should after the course be able to use a regular shell and some of the most basic operations. The best way to learn this is to actually use them so open up a shell and start practicing.

Processes Experiment related to processes, what they look like and how they are created. These are best done in conjunction with lectures 3 and 4. The assignments, or tutorials, will give you a much better understanding of the process and how it is related to the kernel.


* The structure of a process: A heap, a stack, a bottle and a rack
* How to create a process:  Hello Dolly
* How signals can be trapped:  Don't do this at home
* How to write a kernel module in 20 min: Want to play a game?
Virtual memory Memory visualization is covered in lectures 5 through 8. These experiments with the algorithms used for memory management and see how important it is with some hardware support.


* User space memory management:  MyM malloc (soon): mylloc and mhysa
* The importance of the TLB:  How large is the TLB?
* The kernels page management: Page frame reclaiming algorithms
Concurrency Concurrency is covered in lecture 9 and 10.


* Build you own threads library:  Threads - roll your own
* Why and how to implement locking (to bee done)
* Process communication (soon here)
File systems Files systems and persistent storage is covered in lectures 11 through 13. You will here explore both the naming system i.e. how to find a file, and how to change their content.


* What's in a link (to bee done)
* File operations.

Johan Montelius edited 9 October 2016

Here are a set of experiments that you should complete during the course. They will help you to understand the concepts that we discuss during the lectures. You do not need to hand in a report but you're encouraged to write a small four page summary of your findings. The exam will have questions related to these experiments; questions that will be quite easy to understand if you have done the experiments but rather hard to solve if you have not done them.

All experiments are done programming in C, using gcc,  on a 64 bit  Linux system. You can more or less easily  adapt them to Os X, Windows or some other operating system or compiler but it is encouraged to instead install a virtual machine and boot it up with a Linux system. You should after the course be able to use a regular shell and some of the most basic operations. The best way to learn this is to actually use them so open up a shell and start practicing.

Processes Experiment related to processes, what they look like and how they are created. These are best done in conjunction with lectures 3 and 4. The assignments, or tutorials, will give you a much better understanding of the process and how it is related to the kernel.


* The structure of a process: A heap, a stack, a bottle and a rack
* How to create a process:  Hello Dolly
* How signals can be trapped:  Don't do this at home
* How to write a kernel module in 20 min: Want to play a game?
Virtual memory Memory visualization is covered in lectures 5 through 8. These experiments with the algorithms used for memory management and see how important it is with some hardware support.


* User space memory management: My malloc: mylloc and mhysa
* The importance of the TLB:  How large is the TLB?
* The kernels page management: Page frame reclaiming algorithms
Concurrency Concurrency is covered in lecture 9 and 10.


* Build you own threads library:  Threads - roll your own
* Why and how to implement locking (to be done): Take me for a spin
* Process communication (soon here)
File systems Files systems and persistent storage is covered in lectures 11 through 13. You will here explore both the naming system i.e. how to find a file, and how to change their content.


* What's in a link (to be done)
* File operations.

Johan Montelius edited 1 November 2016

Here are a set of experiments that you should complete during the course. They will help you to understand the concepts that we discuss during the lectures. You do not need to hand in a report but you're encouraged to write a small four page summary of your findings. The exam will have questions related to these experiments; questions that will be quite easy to understand if you have done the experiments but rather hard to solve if you have not done them.

All experiments are done programming in C, using gcc,  on a 64 bit  Linux system. You can more or less easily  adapt them to Os X, Windows or some other operating system or compiler but it is encouraged to instead install a virtual machine and boot it up with a Linux system. You should after the course be able to use a regular shell and some of the most basic operations. The best way to learn this is to actually use them so open up a shell and start practicing.

Processes Experiment related to processes, what they look like and how they are created. These are best done in conjunction with lectures 3 and 4. The assignments, or tutorials, will give you a much better understanding of the process and how it is related to the kernel.


* The structure of a process: A heap, a stack, a bottle and a rack
* How to create a process:  Hello Dolly
* How signals can be trapped:  Don't do this at home
* How to write a kernel module in 20 min: Want to play a game?
Virtual memory Memory visualization is covered in lectures 5 through 8. These experiments with the algorithms used for memory management and see how important it is with some hardware support.


* User space memory management: My malloc: mylloc and mhysa
* Using mmap() instead of sbrk(): My malloc using mmap()
* The importance of the TLB:  How large is the TLB?
* The kernels page management: Page frame reclaiming algorithms
Concurrency Concurrency is covered in lecture 9 and 10.


* Build you own threads library:  Threads - roll your own
* Why and how to implement locking: Take me for a spin
* Process communication (soon here): Ping-pong and Echoes
File systems Files systems and persistent storage is covered in lectures 11 through 13. You will here explore both the performance of secondary storage and how the file system is constructed.


* Secondary storage: Storage - take your time
* File operations.

Assistant commented 7 November 2016

In the malloc experiment: My malloc: mylloc and mhysa your computer will probably shut down when executing the code from section 2.3. Save your work before going into this section or/and consider trying a smaller value than 100 for ROUNDS if you don't want to restart your computer. See the experiment description for further details on why this is happening.

Johan Montelius edited 22 December 2016

Here are a set of experiments that you should complete during the course. They will help you to understand the concepts that we discuss during the lectures. You do not need to hand in a report but you're encouraged to write a small four page summary of your findings. The exam will have questions related to these experiments; questions that will be quite easy to understand if you have done the experiments but rather hard to solve if you have not done them.

All experiments are done programming in C, using gcc,  on a 64 bit  Linux system. You can more or less easily  adapt them to Os X, Windows or some other operating system or compiler but it is encouraged to instead install a virtual machine and boot it up with a Linux system. You should after the course be able to use a regular shell and some of the most basic operations. The best way to learn this is to actually use them so open up a shell and start practicing.

Processes Experiment related to processes, what they look like and how they are created. These are best done in conjunction with lectures 3 and 4. The assignments, or tutorials, will give you a much better understanding of the process and how it is related to the kernel.


* The structure of a process: A heap, a stack, a bottle and a rack
* How to create a process:  Hello Dolly
* How signals can be trapped:  Don't do this at home
* How to write a kernel module in 20 min: Want to play a game?
Virtual memory Memory visualization is covered in lectures 5 through 8. These experiments with the algorithms used for memory management and see how important it is with some hardware support.


* User space memory management: My malloc: mylloc and mhysa
* Using mmap() instead of sbrk(): My malloc using mmap()
* The importance of the TLB:  How large is the TLB?
* The kernels page management: Page frame reclaiming algorithms
Concurrency Concurrency is covered in lecture 9 and 10.


* Build you own threads library:  Threads - roll your own
* Why and how to implement locking: Take me for a spin
* Process communication: Ping-pong and Echoes
File systems Files systems and persistent storage is covered in lectures 11 through 13. You will here explore both the performance of secondary storage and how the file system is constructed.


* Secondary storage: Storage - take your time
* File operations. Exploring the file system