less than 1 minute read

System Call

user application이 OS의 서비스를 이용하기 위해 제공하는 인터페이스. API와 반대로 호환성이 떨어진다. System Call은 System마다 다른 형태를 지니지만 API는 시스템과 관계없이 사용할 수 있다.

RTE(RunTime Environment)

Programming language로 작성된 application을 실행하기 위한 프로그램의 집합. compiler, interpreter, libraries, loaders같은 프로그램이 내장되어있다. RTE는 System-call interface을 제공한다.

Types of Syscall

  • Process Control
  • File Management
  • Device Management
  • Information Maintenance
  • Communications
  • Protection

    How it works

    syscall은 interrupt이며 번호는 80,즉 INT80이다. Interrupt시 IDT(Interrupt Descriptor Table)를 검색하고 해당하는 interrupt에 맞는 ISR을 수행한다. INT80 ISR에서는 syscall table에서 번호를 통해 syscall의 원형으로 이동해 해당 함수를 실행한다.
    이때 parameter는 register, table(block), stack 중 하나를 이용해 전달한다.

OS Structure

초기에는 어셈블리어로 작성되었지만 현재는 C or C++로 작성.
high-level language로 작성해 빠르게 만들수 있지만 용량이 늘어나고 속도가 느려진다.

Monolithic Structure(No Structure)

UNIX OS는 두 부분으로 나누는데, System Programs, kernel 두 부분으로 나눈다.

Layered Approach(tightly coupled system)

여러 level로 이루어져있어, modularity라는 점에서 construction, debugging이 쉽다. layer0 is hardware level, layerN(highest) is user interface.

Categories:

Updated: