Skip to content

neta-kedem/OS-Project

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

----------------------------------------
List of the Team Members
----------------------------------------

[*] Tommaso Ognibene        (tommaso.ognibene@studio.unibo.it)
[*] Neta Kedem              (neta.kedem@studio.unibo.it)
[*] Alessio Gozzoli         (alessio.gozzoli@studio.unibo.it)
[*] Alessandro Panipucci    (alessandro.panipucci@studio.unibo.it)

----------------------------------------
UARM Core File Generation & Testing
----------------------------------------

[1] Open the terminal and reach the directory "p1".
[2] Run "make" in order to generate the UARM core file.
[3] Open UARM and add the obtained UARM core file.
[4] Execute the test.

----------------------------------------
Design Decisions & Computational Remarks
----------------------------------------

The testing and analysis shall verify that the design specifications (http://www.cs.unibo.it/~renzo/so/Kaya.pdf) have been met.

The following computational remarks are worth to mention:

[1] Concerning the PCB process queue:
The specifications propose a single circularly linked list, but also accept a double circularly linked list.
We tried both ways. Nonetheless, we reached the conclusion that adding a second pointer (called p_prev) wouldn't improve the overall computational complexity. Therefore, there is no point in wasting memory with a second pointer. 
			
[2] Concerning the PCB process tree:
The specifications propose a NULL-terminated single linearly linked list, but also accept a NULL-terminated double linearly linked list.
We tried both ways. Nonetheless, we would like to note that neither of them is the best solution.
Since the specifications state that the pointer p_child should point to the first child of the process, then the best solution would rather be a double circularly linked list.
In particular, the function EXTERN void insertChild(pcb_t *prnt, pcb_t *p) would cost:
	[*] O(1), with a double circularly linked list
	[*] O(n), with the data structures given by the specifications.
With n representing the number of children.
Reason: in the first case there is no need for any cycle, in the second case there is.
			
[2] Concerning the ASL:
The specifications require a sorted NULL-terminated single linearly linked list, suggesting the use of a dummy header. We followed this advice for both the ASL and the semdFree list. This way we made the code shorter and more readable.

About

Kaya Operating System Project, Operating Systems 2013-2014, University of Bologna

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors