FACTOID # 29: 73.3% of America's gross operating surplus in motion picture and sound recording industries comes from California.
 
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 
   
 
WHAT'S NEW
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > System call

In computing, a system call is the mechanism used by an application program to request service from the operating system. RAM (Random Access Memory) Look up computing in Wiktionary, the free dictionary. ... // An operating system (OS) is the software that manages the sharing of the resources of a computer. ...

Contents

Background

In addition to processing data in its own memory space, an application program might want to use data and services provided by the system. Examples of the system providing a service to an application include: reporting the current time, allocating memory space, reading from or writing to a file, printing text on screen, and a host of other necessary actions. Computer software (or simply software) refers to one or more computer programs and data held in the storage of a computer for some purpose. ...


Since the machine and its devices are shared between all the programs, the access must be synchronized. Some of the activities may fail the system or even destroy something physically. For these reasons, the access to the physical environment is strictly managed by the BIOS and operating system. The code and data of the OS is located in a protected area of memory and cannot be accessed/damaged by user applications. The only gate to the hardware is system calls, which are defined in the operating system. These calls check the requests and deliver them to the OS drivers, which control the hardware input/output directly. Windows XP loading drivers during a Safe Mode bootup A device driver, or software driver is a computer program allowing higher-level computer programs to interact with a computer hardware device. ...


Modern processors can typically execute instructions in several, very different, privileged states. In systems with two levels, they are usually called user mode and supervisor mode. Different privilege levels are provided so that operating systems can restrict the operations that programs running under them can perform, for reasons of security and stability. Such operations include accessing hardware devices, enabling and disabling interrupts, changing privileged processor state, and accessing memory management units. User mode refers to two similar concepts in computer architecture. ... In computer terms, supervisor mode is a hardware-mediated flag which can be changed by code running in system-level software. ... In computer engineering, an interrupt is a signal from a device which typically results in a context switch: that is, the processor sets aside what its doing and does something else. ... This 68451 MMU could be used with the Motorola 68010 A memory management unit (MMU), sometimes called paged memory management unit (PMMU), is a computer hardware component responsible for handling accesses to memory requested by the central processing unit (CPU). ...


With the development of separate operating modes with varying levels of privilege, a mechanism was needed for transferring control safely from lesser privileged modes to higher privileged modes. Less privileged code could not simply transfer control to more privileged code at any arbitrary point and with any arbitrary processor state. To allow it to do so could allow it to break security. For instance, the less privileged code could cause the higher privileged code to execute in the wrong order, or provide it with a bad stack. In computer science, a call stack is a special stack which stores information about the active subroutines of a computer program. ...


Mechanism

System calls often use a special CPU instruction which causes the processor to transfer control to more privileged code, as previously specified by the more privileged code. This allows the more privileged code to specify where it will be entered as well as important processor state at the time of entry. In computer science, an instruction typically refers to a single operation of a processor within a computer architecture. ... “CPU” redirects here. ...


When the system call is invoked, the program which invoked it is interrupted, and information needed to continue its execution later is saved. The processor then begins executing the higher privileged code, which, by examining processor state set by the less privileged code and/or its stack, determines what is being requested. When it is finished, it returns to the program, restoring the saved state, and the program continues executing. In computer programming, subprograms (functions) will return to the higher-level programs, which called them; return ends the current task. ...


Note that in many cases, the actual return to the program may not be immediate. If the system call performs any kind of lengthy I/O operation, for instance disk or network access, the program may be suspended (“blocked”) and taken off the “ready” queue until the operation is complete, at which point the operating system will again make it a candidate for execution.


The library as an intermediary

Generally, operating systems provide a library that sits between normal programs and the rest of the operating system, usually the C library (libc), such as glibc and the Microsoft C runtime. This library handles the low-level details of passing information to the kernel and switching to supervisor mode, as well as any data processing and preparation which does not need to be done in privileged mode. Ideally, this reduces the coupling between the operating system and the application, and increases portability. Glibc is the GNU projects C standard library, licensed under the LGPL. The lead contributor and maintainer is Ulrich Drepper. ... In computer science, coupling or dependency is the degree to which each program module relies on each other module. ...


On exokernel based systems, the library is especially important as an intermediary. On exokernels, OSes shield user applications from the very low level kernel API, and provide abstractions and resource management. Graphical overview of Exokernel Exokernel is an operating system kernel developed by the MIT Parallel and Distributed Operating Systems group, and also a class of similar operating systems. ...


Examples and tools

On Unix-based and POSIX-based systems, popular system calls are open, read, write, close, wait, exec, fork, exit, and kill. Many of today's operating systems have hundreds of system calls. For example, Linux has 319 different system calls. FreeBSD has about the same (almost 330). Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®) is a computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. ... POSIX or Portable Operating System Interface[1] is the collective name of a family of related standards specified by the IEEE to define the application programming interface (API) for software compatible with variants of the Unix operating system. ... A file is opened or created by calling the open function. ... In modern computer operating systems, a process (or task) may wait on another process to complete its execution. ... The exec functions of the Unix and POSIX operating systems load and execute a new child process by placing it in memory previously occupied by the parent process. ... A fork, when applied to computing is when a process creates a copy of itself, which then acts as a child of the original process, now called the parent. More generally, a fork in a multithreading environment means that a thread of execution is duplicated. ... An exit, when applied to computing, is when a process terminates execution. ... Wikibooks has more about this subject: kill In Unix and Unix-like operating systems, kill is a command used to send simple messages to processes running on the system. ... This article is about operating systems that use the Linux kernel. ... FreeBSD is a Unix-like free operating system descended from AT&T UNIX via the Berkeley Software Distribution (BSD) branch through the 386BSD and 4. ...


Tools such as strace and truss report the system calls made by a running process. strace is a debugging utility in Linux to monitor the system calls used by a program and all the signals it receives. ... Look up truss in Wiktionary, the free dictionary. ...


In the Java platform, there is no need for the Java virtual machine to interrupt itself to make the system call safer. The effect is reached by providing a higher level of isolation by renunciation of arbitrary memory pointers, which allows the safe placement of all the code into one memory space. The Java virtual machine is indistinguishable from its supporting library Java Runtime Environment in this platform where API consists of a set of system objects, invoking methods of which system calls are made, and no privileged instructions are needed. A similar approach is used by Microsoft in its .Net platform and Singularity OS. Java refers to a number of computer software products and specifications from Sun Microsystems (the Javaâ„¢ technology) that together provide a system for developing and deploying cross-platform applications. ... A Java Virtual Machine (JVM) is a set of computer software programs and data structures which implements a specific virtual machine model. ... Java Logo The Java Runtime Environment, or JRE, or J2RE is a software bundle from Sun Microsystems that allows a computer system to run a Java application. ... Singularity is a Microsoft Research project to build a highly-dependable operating system in which the kernel, device driver, and applications are all written in managed code. ...


Typical implementations

Implementing system calls requires a control transfer which involves some sort of architecture specific feature. A typical way to implement this is to use a software interrupt or trap. 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. Linux uses this implementation on x86 where the system call number is placed in the EAX register before interrupt 0x80 is executed. In computing, an interrupt is an asynchronous signal from hardware or software indicating the need for attention. ... It has been suggested that this article or section be merged into Exception handling. ... A kernel connects the application software to the hardware of a computer. ... This article is about operating systems that use the Linux kernel. ... x86 or 80x86 is the generic name of a microprocessor architecture first developed and manufactured by Intel. ... In computer architecture, a processor register is a small amount of very fast computer memory used to speed the execution of computer programs by providing quick access to frequently used values—typically, these values are involved in multiple expression evaluations occurring within a small region on the program. ...


For many RISC processors this is the only feasible implementation, but CISC architectures such as x86 support additional techniques. One example is SYSCALL/SYSRET which is very similar to SYSENTER/SYSEXIT (the two mechanisms were created by Intel and AMD independently, but do basically the same thing). These are "fast" control transfer instructions that are designed to quickly transfer control to the kernel for a system call without the overhead of an interrupt. Reduced Instruction Set Computer (RISC), is a microprocessor CPU design philosophy that favors a smaller and simpler set of instructions that all take about the same amount of time to execute. ... A Complex Instruction Set Computer (CISC) is an instruction set architecture (ISA) in which each instruction can indicate several low-level operations, such as a load from memory, an arithmetic operation, and a memory store, all in a single instruction. ... x86 or 80x86 is the generic name of a microprocessor architecture first developed and manufactured by Intel. ...


An older x86 mechanism is called a call gate and is a way for a program to literally call a kernel function directly using a safe control transfer mechanism the kernel sets up in advance. This approach has been unpopular, presumably due to the requirement of a far call which uses x86 segmentation and the resulting lack of portability it causes, and existence of the faster instructions mentioned above. x86 or 80x86 is the generic name of a microprocessor architecture first developed and manufactured by Intel. ... A call gate (or callgate) is a mechanism in Intels x86 architecture for changing the privilege level of the CPU when it executes a predefined function call using a CALL FAR instruction. ...


External links

This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL. The Linux kernel is a Unix-like operating system kernel. ... ... To meet Wikipedias quality standards, this article or section may require cleanup. ... This article does not cite any references or sources. ... “GFDL” redirects here. ...


  Results from FactBites:
 
Emergency Call System - Personal Emergency Response System - CISCOR (611 words)
An emergency call system (also known as a Panic Alarm, Man Down Alarm System, Duress System, or a Personal Emergency Response System) is available from CISCOR as hardwired emergency call systems, wireless emergency call systems or a combination of the two.
In the case of a wireless emergency call system, each personal wireless transmitters is continuously monitored for both low battery and operational readiness.
Optionally, man down system pendants may be equipped with a high security pull chain that activates the man down system pendant should an attempt be made to forcibly remove it from the person carrying it.
Unix System Calls (6599 words)
System calls are functions that a programmer can call to perform the services of the operating system.
System calls are the only way to access kernel facilities such as the file system, the multitasking mechanisms, and the interprocess communication primitives.
It allows almost all of the UNIX system calls to be executed from Java, using the same arguments and datatypes as the official C calls.
  More results at FactBites »

 
 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:

 


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m