Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Overwatch League SaberMetrics
- linux
- vi
- vim
- Find
- FTZ 레벨2
- libpcap
- command
- 오버워치 세이버메트릭스
- Network
- 오버워치
- #Best of the Best #OS #MINT64 #Sqix
- Sqix
- BEST of the BEST
- #
- #IntelManual #segment Descriptor #세그먼트 디스크립터 #MINT64 #Sqix
- vi 외부 명령어
- >
- libtins
- ftz
- 인터럽트
- #MINT64 #Sqix
- C++11
- #Qt Creator
- KASAN
- #IntelManual
Archives
- Today
- Total
Sqix
CS - OS - 01. 운영체제의 큰 틀 이해 본문
운영체제(Operating System, OS)의 역할 : 시스템의 자원*을 관리하는 관리자
*시스템 자원 = 컴퓨터의 하드웨어( CPU / Memory / I/O / Disk 등)
운영체제의 역할
시스템 자원의 분배
- 각 프로세스마다 CPU를 얼마나 사용하도록 할 지에 대한 분배
- 프로그램이 Memory의 어떤 주소에 어느 정도의 공간을 활용해서 저장할지에 대한 분배
- 프로그램을 어디에 저장할지에 대한 결정
- I/O 장치의 입력에 대한 처리와 입력된 신호에 대한 출력 처리 결정
컴퓨터 하드웨어와 응용프로그램 제어
- 응용프로그램의 실행과 동작에 대한 관리
- 프로세스 / 메모리 / 파일 / 디스크 / 입출력에 대한 관리
- 네트워킹 제어와 컴퓨터 보호(보안)
- 컴퓨터 하드웨어의 동작에 대한 제어
사용자와 컴퓨터 간의 의사소통 지원
응용프로그램 (App)
응용프로그램과 운영체제의 관계
- 응용프로그램의 정의 : 사용자 혹은 프로그램에게 특정한 기능을 수행하도록 설계 / 제작된 프로그램
- 통상적으로 운영체제 위에서 동작하는 프로그램들을 응용프로그램이라고 한다
- 운영체제와 응용프로그램
- 운영체제는 응용프로그램의 실행/종료를 관리한다.
- 운영체제는 응용프로그램간의 권한(접근 권한)을 관리한다.
- 운영체제는 응용프로그램의 사용자를 관리한다.
- 운영체제는 응용프로그램에게 적절한 시스템 리소스를 분배한다.
시스템 리소스의 분배
자원 분배의 과정
- 응용프로그램이 운영체제에 리소스 요청
- 요청된 메모리에 대한 허가 / 분배
- 요청된 CPU 사용 시간 제공
- 요청된 I/O 장치 사용 허가 / 제어
- 운영체제는 적절한 리소스를 할당
- 사용 기한이 다 되면 리소스 회수
운영체제가 제공하는 인터페이스
UI(User Interface)
- 쉘
- 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램
- CLI(터미널 환경)와 GUI(그래픽 환경)로 구분된다.
- 운영체제가 제공하는 API를 기반으로 쉘이 만들어지고, 이를 통해 운영체제에 대한 사용자의 요청에 맞는 기능을 제공함.
API(Application Programming Interface)
- 응용 프로그램을 위한 인터페이스
- 함수 형태로 제공되며, 보통은 이러한 함수들을 묶은 라이브러리의 형태로 제공된다.
- 대부분의 API는 SYSCALL을 호출하는 함수를 작성해 놓은 형태로 이루어짐.
- 시스템 호출 인터페이스
- User 공간의 프로그램들이 운영체제의 기능을 이용한 요청을 처리할 수 있도록 제공되는 C언어 함수
CPU Protection Rings
CPU의 권한
- 사용자 모드(주로 Ring 3) : 일반 유저 모드.
- 커널 모드(Ring 0) : 특권 명령어 실행과 원하는 작업 수행을 위한 작업 접근을 가능하게 하는 모드.
- Ring 1,2는 운영체제의 서비스를 위해 사용(드라이버 등)되나 Windows, Linux에선 딱히 사용되진 않는다.
APP과 OS
- 하드웨어, I/O 장치, 네트워크에 접근해야 하는 경우 APP은 OS에 시스템 콜을 통해 기능 실행을 요청한다.
- 시스템 콜은 운영체제에서 제공된다.
정리
■ 운영체제는 컴퓨터 하드웨어와 응용프로그램을 관리
■ UI 제공을 위해 쉘 프로그램을 제공
■ 응용프로그램이 운영체제 기능을 요청할 수 있도록 하기 위해서 운영체제는 시스템 콜을 제공
- 보통 시스템콜을 직접 사용하기보다, 각 언어별 API에서 제공하는 시스템 콜을 이용해서 만든 함수들을 활용한다.
- 응용프로그램은 필요 시 API를 이용해서 해당 기능을 호출한다.
- 평소 유저 권한으로 실행되는 응용프로그램이 운영체제 기능이 필요한 API를 호출하면,
시스템 콜이 호출되어 커널 권한으로 명령이 실행된 뒤 다시 응용프로그램으로 돌아간다.
'CS > OS' 카테고리의 다른 글
CS - OS - 06. Thread (0) | 2021.11.23 |
---|---|
CS - OS - 05. Inter Process Communication(IPC) (0) | 2021.11.19 |
CS - OS - 04. 프로세스와 컨텍스트 스위칭 (0) | 2021.11.19 |
CS - OS - 03. 인터럽트 (0) | 2021.11.18 |
CS - OS - 02. 프로세스 스케쥴링 (0) | 2021.11.16 |
Comments