일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- spark udf
- API Gateway
- hadoop
- 상관관계
- GCP
- grad-cam
- requests
- tensorflow text
- correlation
- XAI
- UDF
- 유튜브 API
- BigQuery
- Airflow
- login crawling
- airflow subdag
- Retry
- session 유지
- TensorFlow
- gather_nd
- flask
- API
- integrated gradient
- subdag
- chatGPT
- GenericGBQException
- youtube data
- top_k
- Counterfactual Explanations
- 공분산
- Today
- Total
데이터과학 삼학년
운영체제 구조 - 시스템콜 , API, 사용자 모드/ 커널 모드 본문
시스템 콜
응용 프로그램, 운영체제, 컴퓨터 하드웨어(시스템 리소스) 관계
→ 도서관에 비유
-
운영체제는 도서관
-
응용 프로그램은 시민
-
컴퓨터 하드웨어는 책
-
운영체제의 역할
-
시민이 도서관에 책(자원)을 요청
-
도서관은 적절한 책을 찾아 시민에게 대여
-
시민의 기한이 다 되면, 도서관이 책 회수
-
응용 프로그램의 요청시
메모리 허가 및 분배 / CPU 시간 제공 / IO Devices 사용을 허가 및 제어
운영체제는 사용자 인터페이스 제공
-
쉘(Shell)
-
사용자가 OS 기능과 서비스를 조작할 수 있도록 인터페이스를 제공
-
쉘은 CLI와 GUI 두 종류로 분류
운영체제는 응용 프로그램을 위해서도 인터페이스를 제공
-
API (Application Programming Interface)
-
해당 신청서 양식이 아니면 도서관(OS)에서 시민(Application)의 요청을 받지 않음
-
-
함수로 제공
-
보통은 라이브러리 형태로 제공
-
(위 도서관의 비유로 치자면, 책 대여 신청서 개념으로 이해!)
-
시스템 콜
-
운영체제가 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공
-
API 내부에는 시스템 콜을 호출하는 형태로 만들어지는 경우가 대부분
운영체제를 만드는 순서
-
운영체제를 개발 (kernel)
-
시스템 콜을 개발
-
C API (library) 개발
-
Shell 프로그램 개발
-
응용 프로그램 개발
운영체제와 시스템 콜
-
시스템 콜 정의 예
-
POSIX API, 윈도우 API
-
맥OS 내부 명령들은 UNIX 계열과 비슷하다고 보면 됨.
POSIX API 사용하고 있다고 이해하면 된다!
API: 각 언어별 운영체제 기능 호출 인터페이스 함수
시스템콜: 운영체제 기능을 호출하는 함수
정리
-
운영체제는 컴퓨터 하드웨어와 응용 프로그램을 관리한다.
-
사용자 인터페이스를 위해 쉘 프로그램을 제공한다.
-
응용 프로그램이 운영체제 기능을 요청하기 위해, 운영체제는 시스템 콜을 제공한다.
-
보통 시스템 콜을 직접 사용하기보다는, 해당 시스템 콜을 사용해서 만든 각 언어별 라이브러리(API)를 사용한다.
사용자 모드와 커널 모드
CPU Protection Rings
-
CPU도 권한 모드를 가지고 있음
-
응용 프로그램이 사용
-
OS가 사용
-
-
사용자 모드 (user mode)
-
커널 모드 (kernel mode): 특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근을 가능케 하는 모드
위의 Ring 3을 사용자 모드, Ring 0을 커널 모드라고 함
응용 프로그램과 운영체제
-
우리가 만드는 프로그램은 맨 위에서 놀고 있다.
예)
응용 프로그램에서 다음의 작업을 수행:
-
1~1000을 더하고
-
파일에서 데이터를 가져오고
-
해당 데이터와 1~1000 더한 값을 또 더해서 출력
위에서 1,3번은 사용자 영역에서 수행이 가능하지만,
2번을 수행하려면 커널 영역에서 수행이 됨
시스템 콜은 커널 모드로 실행
-
커널 모드에서만 실행 가능한 기능들이 있음
-
커널 모드로 실행하려면, 반드시 시스템 콜을 거쳐야 함
-
OS를 만들 때 시스템 콜을 잘 만들어두어야 한다.
-
시스템 콜은 운영체제가 제공
사용자 모드와 커널 모드
-
함부로 응용 프로그램이 전체 컴퓨터 시스템을 헤치지 못함
-
주민등록등본은 꼭 동사무소 혹은 민원24에서 특별한 신청서를 써야만 발급되는 것과 같음 (사용자 모드)
-
동사무소 직원은 특별한 권한을 가지고 주민등록등본 출력 명령을 실행 (커널 모드)
코드 예시 #1
'Computer Science > Operating System' 카테고리의 다른 글
운영체제 개요 및 역사 (0) | 2020.02.28 |
---|