운영체제

kimdooh2019·2020년 2월 10일
0

operating_system

목록 보기
1/3

시스템 콜을 통과하는 순간
시스템 콜이 진짜로 실행되는 명령은 커널 모드에서 실행 된다

운영체제라는 특권권한을 가지고 cpu에 실행을 한다.

시스템 콜은 커널 모드로 실행

사용자 모드와 커널 모드를 구(분하기 시작해야한다)

- 커널 모드에서만 실행 가능한 기능들이 있음
- 커널 모드로 실행하려면, 반드시 시스템 콜을 사용해야 함(거쳐야 함)
- 시스템 콜은 운영체제 제공

응용프로그램이 시스템 콜을 통과해서 커널 모드인 상태로 변환된 상태에서 cpu에서 실행이 된다.
만약 응용프로그램이 cpu를 강제로 실행하려고 해도 사용자 모드이기에 cpu에서 실행이 안된다
(반드시 시스템콜을 이용해야하고 os에서 시스템 콜을 제공(구현?)해줘야 한다.)

사용자 모드와 커널 모드

- 함부로 응용 프로그램이 전체 컴퓨터 시스템을 해치지 못함
- 주민등록본은 꼭 동사무소 or 민원24시(정부사이트)에서 특별한 신청서를 써야만, 발급(사용자모드)
	- 동사무소 직원분들은 특별한 권한을 가지고, 주민등록등본 출력 명령을 실행(커널모드)

직원 -> 발급(시민)

응용 프로그래머와 시스템 프로그래머

응용 프로그래머
API를 가지고 응용프로그램을 만드는 것

시스템 프로그래머는
운영체제(shell) / API / System call + 하드웨어

Code example

그림1.

open('data.txt',O_RDONLY);
저장 매체 <- os
open 이전까지 사용자 모드
open (API -> system call)

  • [1]open 이라는 시스템 콜 호출 -> 커널 모드로 전환
  • [2]open() 함수를 처리하는 sys_open()커널 함수로 호출
  • [3]파일 열기 로 레벨 연산 수행
  • [4]사용자 모드로 전환(읽혀진 데이타/결과값)
  • [5]

정리

  • 운영체제는 시스템 콜 제공
  • 프로그래밍 언어별로 운영체제 기능을 활용하기 위해, 시스템 콜을 기반으로 API 제공
  • 응용 프로그램은 운영체제 기능 필요시, 해당 API를 사용해서 프로그램을 작성
  • 응용 프로그램이 실행되서, 운영체제 기능이 필요한 API를 호출하면, 시스템 콜이 호출되서, 커널 모드로 변경되어 OS 내부에서 해당명령이 실행되고, 다시 응용 프로그램으로 돌아간다.
profile
testify to the light

0개의 댓글