Version 1 (modified by 18 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.e
andst.e
respectively relative topcb.c
andst.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.