운영체제(OS, Operating System)
사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스
한정된 메모리나 시스템 자원을 효율적으로 분배
*펌웨어(firmware) : 운영체제와 유사하지만 소프트웨어를 추가로 설치할 수 없는것
운영체제의 역할 4가지
1. CPU스케줄링과 프로세스 관리
: CPU소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원할당 및 반환을 관리
2. 메모리 관리
: 한정된 메모리를 어떤 프로세스에 얼만큼 할당해야 하는지 관리
3. 디스크 파일 관리
: 디스크 파일을 어떤 방법으로 보관할지 관리
4. I/O 디바이스 관리
: I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리
운영체제의 구조
유저프로그램 | |
GUI | ┐ |
시스템콜 | 운영체제 |
커널 | │ |
드라이버 | ┘ |
하드웨어 |
- GUI ~ 드라이버 까지를 운영체제라고 지칭
- GUI(그래픽 사용자 인터페이스)대신 CUI(명령어처리 인터페이스)만 있는 리눅스 서버도 존재
유저모드와 커널모드
'커널'에서 중요한 자원을 관리하기 때문에 일반 사용자가 접근하지 못하도록 유저모드와 커널모드를 구분
- 커널
- 운영체제의 핵심 부분으로서 시스템콜 인터페이스 제공
- 보안/메모리/프로세스/파일 시스템 등 운영체제의 중추적인 역할 수행
- 유저모드
- 사용자가 접근할 수 있는 영역을 제한적으로 두고 프로그램의 자원에 함부로 침범하지 못하는 모드
- 코드 작성, 프로세스 실행등의 행동 가능
- 유저 어플리케이션 코드는 유저모드에서 실행된다!
- 커널모드
- 드라이버, 메모리, CPU등 모든 자원에 접근 및 명령 가능
- 컴퓨터 내부에서 유저모드일 때와 비교할 수 없게 모든 것을 할 수 있음
시스템콜이란?
운영체제가 커널에 접근하기 위한 인터페이스
유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용
유저 프로그램이 I/O요청으로 트랩(trap)을 발동하면 올바른 요청인지 확인 후 유저모드가 시스템콜을 통해 커널모드로 변환되어 실행
이를 통해
컴퓨터 자원에 대한 직접 접근을 차단할 수 있고 프로그램을 다른 프로그램으로부터 보호할 수 있음
- 트랩 : 소프트웨어 인터럽트
- I/O요청 : 입출력함수, 데이터베이스, 네트워크, 파일 접근 등에 관한 일
유저프로그램이 시스템콜을 통해 컴퓨터 자원 사용요청을 처리하는 과정 상세
- 유저프로그램이 컴퓨터 자원 사용 요청으로 트랩(Trap) 발동
- 올바른 요청인지 확인
- 올바른 요청일 경우 시스템콜 호출
- 시스템콜 호출에 따라 modebit가 1에서 0으로 변경(유저모드 -> 커널모드)
- 커널 모드에서 요청을 처리하는 로직 수행
- 처리 완료 후 modebit가 0에서 1로 변경(커널모드 -> 유저모드)
- 요청 이후의 유저 프로그램 로직을 이어서 수행
- modebit
- 시스템콜이 작동될 때 modebit을 참고하여 유저모드와 커널 모드를 구분
- 1또는 0의 값을 가지는 플래그 변수 (0은 커널 모드, 1은 유저모드로 설정)
- 카메라, 키보드 등 I/O 디바이스는 운영체제를 통해서만 작동해야 함
- 유저모드를 기반으로 작동시키면 사용자의도와 관련없는 작동으로 연결될 위험이 있어 이를 막기 위해 운영체제를 이용
'CS > Operating System' 카테고리의 다른 글
1-2. 운영체제와 컴퓨터 : 컴퓨터의 요소 (0) | 2023.01.19 |
---|