System Calls (Operating System)
Rajkumar Lama
August 21, 2019
1
Define system cell
,
Operating System
,
Operating system notes
,
OS
,
OS Notes
,
System Cell
,
What is System Cell
- System calls are the interface between the operating system and the user programs. Access to the operating system is done through system calls.
- Each system call has a procedure associated with it so that calls to the operating system can be done in a similar way as that of normal procedure call.
- When we call one of these procedures it places the parameters into registers and informs the operating system that there is some work to be done. When a system call is made TRAP instruction is executed. This instruction switches the CPU from user mode to kernel (or supervisor) mode.
- Eventually, the operating system will have completed the work and will return a result.
- Making a system call is like making a special kind of procedure call, only system calls enter the kernel and procedure calls do not.
- Example: count = read(file, buffer, nbytes);
To make this concept clearer, let us examine the read call written above. Calling program first pushes the parameters onto stack (steps 1-3) before calling the read library procedure (step 4), which actually makes the read system call.
- The library procedure, possibly written in assembly language, typically puts the system call number in specified register (step 5). Then it executes a TRAP instruction to switch from user mode to kernel mode and start execution at a fixed address within the kernel (step 6).
- The kernel code examines the system call number and then dispatches to the correct system call handler (step 7). At that point the system call handler runs (step 8).
- Once the system call handler has completed its work, control may be returned to the user-space library procedure at the instruction following the TRAP instruction (step 9).
- This procedure then returns to the user program in the usual way procedure calls return (step 10).
- To finish the job, the user program has to clean up the stack, as it does after any procedure call (step 11).