| Version 1 (modified by , 20 years ago) (diff) |
|---|
Project architecture
1. File system organization
Kaya Phase 1 distribution is subdivided in several folders in order to efficiently organize files and logically separate them into different sections. Such division is thought for being ready to receive Phase 2 implementation providing a well structured environment.
src/: sources folder containing Phase 1 primitive functions source code, as described below in paragraph 2;test/: testing folder, containing a debugging program (p1test.c), related environment generated by the Makefile "test" target; this rule compiles, links, creates uMPS executable and virtual devices and finally run it on the uMPS virtual machine (see also README);doc/: documentation root containing various developers informations about project internals;include/: library headers*.e: Phase 1 primitive functions interfaces:pcb.eandst.erespectively relative topcb.candst.c;*.h: system constants and macro definitions (const.h), types and data structures definitions (types.h);
lib/: Phase 1 libraries objects files, ready for being linked.
2. Source modules organization
Following the evident logical division between two entities we have to instantiate - processes and semaphores -, we opted for a two-modules subdivision:
pcb.c: collects primitive functions for PCBs initialization/ allocation/ deallocation, process queue/ tree maintenance;st.c: collects primitive functions for SD tree initialization and PCB enqueueing to/dequeueing from semaphores.
* `check.c` contains an error check routine which is able to perform a simple type check on the own data structures of Phase 1.
