2.3 & 2.4 - System Calls and Types of System Calls (p.55, 59)
- System calls = Een interface naar services van het OS.
- Application Programming Interface (API) = Gespecificeerde set van instructies welke toegankelijk zijn voor een programmaontwikkelaar inclusief de parameters bij de instructies en de teruggeef waarde.
- Redenen voor werken met API anders dan direct gebruik maken van system calls:
- Programma portabiliteit (programma werkt op alle systemen met die API)
- System calls zijn meer gedetaileerd en moeilijker om mee te werken.
- System-call interface = Link tussen de verschillende programeertalen en de beschikbare system calls van het systeem. (api link)
- Doorgeven van parameters:
- In registers
- In geheugenblokken/tables (in geheugen), het address hiervan wordt doorgegeven.
- Plaatsen op een stack (pushed on, popped off)
Blok/stack methode legt geen limiet op het aantal te gebruiken variabelen.
Java is bedoeld om platform-neutraal te kunnen draaien.
- System calls kunnen niet direct worden gedaan vanuit java code.
- Een native method in java kan dit wel, deze wordt geschreven in c/c++ maar is niet platform neutraal.
Types of System Calls
Process Control
- End/Abort/Load/Execute/Terminate processes
- Get/Set process attributes.
- Wait/Signal for an event or a time.
- Allocate/Free memory.
- Set/Release data locks.
File Manipulation
- Create/Delete/Open/Close/Read/Write/Reposition files.
- Get/Set file attributes.
Device Manipulation
- Reqeuest/Release devices.
- Read/Write/Reposition devices.
- Get/Set device attributes
- Logically Attatch/Detach devices.
Information Maintenance
- Get/Set time or date.
- Get/Set systemdata.
- Get/Set process, file or device attributes.
Communications
- Create/Delete communication connection.
- Send/Receive messages.
- Transfer status information.
- Attatch/Detach remote devices.
Protection
- Get/Set file or folder permissions.
- Get/Set file or folder owner or group.