[운영체제] OS 서비스와 시스템 콜

Seokjun Moon·2023년 4월 1일
0

운영체제

목록 보기
5/23
post-custom-banner

Operating System Services

프로그램과 서비스 실행 환경을 유저와 프로그램에게 제공하는 역할을 합니다. (대표적으로 9개)

  1. User Interface : Command-Line(CLI), GUI, touch-screen
  2. Program execution : 메모리에 프로그램 로드, 스케쥴링
  3. I/O operations
  4. File-system manipulation
  5. Communications : 프로세스 사이 통신
  6. Error detection
  7. Resource allocation : 여러 명의 유저, 여러 개의 job
  8. Logging : 작업관리자
  9. Protection and security




User-OS interface

Command-Line(CLI)는 직접적인 명령어를 사용하게 해줍니다. (대표적으로 윈도우의 명령 프롬프트, 리눅스 쉘 bash). CLI도 하나의 프로그램 입니다. Kernel(OS)에 의해 구현될수도, system program(운영체제와 연관된 사용자 프로그램)에 의해 구현될 수 도 있습니다.
즉, 사용자가 명령어를 직접 실행할 수 있게 해줍니다.




System call

Programming interface to the OS services

사용자 프로그램이 OS 서비스를 사용하기 위해서는 시스템 콜을 사용해야 합니다. 시스템 콜은 OS의 기능들에 접근하는 일종의 함수 입니다. 직접 시스템 콜을 사용하기 보다는 high-level Application Programming Interface (API) 를 통해 접근하는 방식을 많이 사용합니다. (파라미터가 복잡하고 어렵기 때문)

Implementation

System-call interface는 시스템 콜 넘버를 인덱스로 하는 테이블을 사용합니다.

Parameter Passing

종종 많은 정보를 파라미터로 넘겨야 합니다. 3가지 방법을 주로 사용합니다. 2, 3번 방법을 그 중에서 많이 사용합니다.
1. 레지스터로 전달 : 이 방법은, 파라미터가 레지스터보다 많을 경우 문제가 됩니다.
2. 메모리에 파라미터를 저장하고, 메모리 주소를 레지스터로 전달합니다.
3. ‘스택’ 부분에 push 해두고, 운영체제가 pop 하여 사용합니다.

시스템 콜 종류들

  1. 프로세스 컨트롤
  2. 파일 관리
  3. 다바이스 관리
  4. 정보 유지
  5. 통신
  6. 보안

예시

아두이노

  • OS 없습니다.
  • 단일 task만 처리합니다.

FreeBSD

  • 유닉스랑 비슷
  • 멀티테스킹 가능
profile
차근차근 천천히
post-custom-banner

0개의 댓글