스이연
공부한 내용을 기록하는 블로그 입니다.
💻 운영체제 시작
스이연
2025. 2. 11. 02:41
❗ 운영체제를 알아야하는 이유
운영체제란 🔍
- 시스템 자원 (자원)
- 프로그램 실행에 마땅히 필요한 요소들
- CPU, 메모리, 보조기억장치, 입출력장치 등과 같은 컴퓨터 부품들
- 운영체제
- 실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램
- 인터넷 브라우저, 게임과 같은 프로그램
- 운영체제는 매우 특별한 프로그램이기 때문에 항상 컴퓨터가 부팅될 때 메모리 내 커널영역 이라는 공간에 따로 적재되어 실행
- 사용자 영역
- 커널 영역을 제외한 나머지 영역
- 사용자가 이용하는 응용 프로그램이 적재되는 영역
- 운영체제는 커널 영역에 적재되어 사용자 영역에 적재된 프로그램에 자원을 할당하고 이들이 올바르게 실행되도록 도움
- 최대한 공정하게 여러 프로그램에 CPU 자원 할당
- 응용 프로그램과 하드웨어 사이에서 응용프로그램에 필요한 자원을 할당하고 응용 프로그램이 올바르게 실행되도록 관리하는 역할
운영체제를 알아야하는 이유
- 운영체제에는 현재 하드웨어의 상태는 어떤지, 코드가 어떻게 실행되는지, 하드웨어 상에 어떤 문제가 있었는지 알려주고 사용자는 문제해결의 실마리를 찾을 수 있음
운영체제의 큰그림
운영체제의 심장, 커널
- 커널
- 자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 핵심 서비스를 담당하는 부분
- 사용자 인터페이스 (UI)
- 윈도우의 바탕화면과 같이 사용자가 컴퓨터와 상호작용할 수 있는 통로
- 그래픽 유저 인터페이스 (GUI)
- 윈도우 바탕화면이나 스마트폰의 화면처럼 그래픽을 기반으로 컴퓨터와 상호작용할 수 있는 인터페이스
- 커맨드 라인 인터페이스 (CLI)
- 명령어를 기반으로 컴퓨터와 상호작용할 수 있는 인터페이스
- 커널에 속한 기능은 아님
이중 모드와 시스템 호출
- 이중모드
- CPU가 명령어를 실행하는 모드를 크게 사용자 모드와 커널 모드로 구분하는 방식
- 사용자 모드
- 운영체제 서비스를 제공받을 수 없는 모드
- 커널 영역의 코드를 실행할 수 없는 모드
- 일반적인 응용 프로그램은 기본적으로 사용자 모드로 실행됨
- 커널 모드
- 운영체제 서비스를 제공받을 수 있는 실행 모드
- 커널 영역의 코드를 실행할 수 있는 모드
- 자원에 접근하는 명령어를 비롯한 모든 명령어를 실행할 수 있음
- 시스템 호출
- 사용자 모드로 실행되는 프로그램이 자원에 접근하는 운영체제 서비스를 제공받기 위한 요청
- 일종의 소프트웨어 인터럽트
- 소프트웨어 인터럽트 : 인터럽트를 발생시키틑 특정 명령어에 의해 발생하는 것
운영체제의 핵심 서비스
- 프로세스 관리
- 프로세스 : 실행중인 프로그램
- 일반적으로 하나의 CPU는 한 번에 하나의 프로세스만 실행할 수 있어서 CPU는 이 프로세스들을 조금씩 번갈아 가며 실행함
- 여러 프로세스가 동시에 실행되는 환경에서는 ‘프로세스 동기화’ 가 필수적이고 프로세스가 꼼짝 못하고 더이상 실행되지 못하는 상황인 ‘교착상태’를 해결해야 함
- 자원 접근 및 할당
- 운영체제는 프로세스들이 사용할 자원에 접근하고 조작함으로써 프로세스에 필요한 자원을 할당해줌
- CPU
- 일반적으로 메모리에는 여러 프로세스가 적재되고 하나의 CPU는 한 번에 하나의 프로세스만 실행할 수 있음
- CPU 스케줄링
- 운영체제가 프로세스들에 공정하게 CPU를 할당하기 위해 어떤 프로세스부터 CPU를 이용 하게 할 것인지, 얼마나 오래 CPU를 이용하게 할지 결정한는 것
- 메모리
- 운영체제는 새로운 프로세스가 적재될 때마다 어느 주소에 적재해야 할지 결정해야 함
- 입출력장치
- 입출력장치가 하드웨어 인터럽트 요청 신호를 보내면 CPU는 하던 일을 잠시 백업 한 뒤 커널 영역에 있는 인터럽트 서비스 루틴을 실행함
- 파일 시스템 관리
- 일반적으로 사용자가 여러 파일을 열고, 생성하고, 삭제하고 디렉터리로 묶어 관리하는 파일 시스템도 운영체제가 관리하는 핵심 서비스임
참고 자료
혼자 공부하는 컴퓨터구조 + 운영체제
'CS/Operating System'의 다른 글