Operating System Services Operating Systems Spring 2009-2010 CS5212 Operating System Services Outline 1 Operating System Services System Calls Types of System Calls CS5212 Operating System Services System Calls Types of System Calls Outline 1 Operating System Services System Calls Types of System Calls CS5212 Operating System Services System Calls Types of System Calls Implementing System Calls A typical way to implement system calls is to use a software interrupt. Interrupts transfer control to the kernel so software simply needs to Set up some register with the system call number they want and execute the software interrupt Typically, System-Call Interface maintains a table with the numbers of the system calls CS5212 Operating System Services System Calls Types of System Calls Interrupts An interrupt is 1 2 an asynchronous signal from hardware to CPU indicating the need for attention a synchronous event in software being executed indicating the need for a change in execution A hardware interrupt causes the processor to save its state of execution via a context switch, and begin execution of an interrupt handler Software interrupts (aka traps, exceptions) are usually implemented as instructions in the instruction set of the CPU, which cause a context switch to an interrupt handler similar to a hardware interrupt caused either by an error or a user request CS5212 Operating System Services System Calls Types of System Calls System Call Parameter Passing Three general methods used to pass parameters to the OS Simplest: pass the parameters in registers ...but what if there are more parameters than registers? Parameters stored in a block, or table, in memory, and address of block passed as a parameter in a register Each individual system call knows how to treat the table contents This approach taken by Linux and Solaris Parameters placed, or pushed, onto the stack by the program and popped off the stack by the operating system Block and stack methods do not limit the number or length of parameters being passed CS5212 Operating System Services System Calls Types of System Calls Parameter Passing via Table CS5212 Operating System Services System Calls Types of System Calls Outline 1 Operating System Services System Calls Types of System Calls CS5212 Operating System Services System Calls Types of System Calls Categories Process control File management Device management Information maintenance Communications CS5212 Operating System Services System Calls Types of System Calls Process Control end, abort load, execute create process, terminate process get/set process attributes wait for time wait/signal event allocate and free memory CS5212 Operating System Services System Calls Types of System Calls File Management create/delete file open, close read, write, reposition get/set file attributes CS5212 Operating System Services System Calls Types of System Calls Device Management request device, release device read, write, reposition get/set device attributes logically attach or detach devices CS5212 Operating System Services System Calls Types of System Calls Information Maintenance get/set time or date get/set system data number of current users amount of free memory (numerous other statistics) CS5212 Operating System Services System Calls Types of System Calls Communication create, delete communication connection send, receive messages transfer status information attach or detach remote devices CS5212 Operating System Services System Calls Types of System Calls Tasks for Further Investigation Software interrupts File Descriptors System Stack CS5212