728x90
운영체제란
- 모든 프로그램은 실행을 위해 자원(resource)을 필요로 한다
- 자원/시스템 자원
- 프로그램 실행에 있어 마땅히 필요한 요소
- 컴퓨터의 네 가지 핵심 부품 포함!
즉 실행할 프로그램에 필요한 자원을 할당하고
프로그램이 올바르게 실행되도록 돕는 특별한 프로그램
- 메모리속 커널 영역 : 운영체제가 항상 적재되어 있는 영역
- 메모리속 사용자 영역 : 응용 프로그램(application)이 적재되는 영역
운영체제의 역할
- 실행할 프로그램을 메모리에 적재하고, 더 이상 실행되지 않는 프로그램을 메모리에서 삭제하며 지속적으로 메모리 자원을 관리함
- 운영체제는 최대한 공정하게 여러 프로그램에 CPU자원을 할당해 준다
- 실행 할 프로그램들이 지켜야 할 규칙을 만들어 컴퓨터 시스템 전체를 관리한다
운영체제의 심장, 커널
커널
- 자원에 접근하고 조작하는 기능, 프로그램이 올바르고 안전하게 실행되게 하는 기능이 운영체제의 핵심 서비스에 속한다
이러한 운영체제의 핵심 서비스를 담당하는 부분을 커널이라고 한다 - 운영체제가 설치된 모든 기기에는 커널이 있다
- 커널은 마치 사람의 심장,혹은 자동차의 엔진과도 같다
커널에 포함되지 않는 서비스
- 사용자 인터페이스 (사용자가 컴퓨터와 상호작용할 수 있는 통로)
- 그래픽 유저 인터페이스(윈도우 바탕화면) + 커맨드 라인 인터페이스(명령어를 기반으로 컴퓨터와 상호작용할 수 있는 인터페이스)
이중모드와 시스템 호출
응용 프로그램이 자원에 접근하기 위해서는 운영체제에 도움을 요청해야 한다. 즉 운영체제는 문지기 역할이라고 할 수 있다
이중모드
- CPU가 명령어를 실행하는 모드를 크게 사용자 모드와 커널 모드로 구분하는 방식
- 사용자 모드
- 운영체제 서비스를 제공받을 수 없는 실행 모드
- 커널 영역의 코드를 실행할 수 없는 실행모드
- 자원 접근 불가 - 커널 모드
- 운영체제의 서비스를 제공받을 수 있는 실행 모드
- 자원 접근을 비롯한 모든 명령어 실행 가능 - 운영체제
시스템 호출
- 커널 모드로 전환하여 실행하기 위해 호출
- 일종의 소프트웨어 인터럽트
- 시스템 호출이 처리되는 방식은 하드웨어 인터럽트 처리 방식과 유사
운영체제의 핵심 서비스
프로세스 관리
- 프로세스 == 실행 중인 프로그램
- 수많은 프로세스들이 동시에 실행
- 동시다발적으로 생성/실행/삭제되는 다양한 프로세스를 일목요연하게 관리
자원 접근 및 할당
- CPU (CPU 스케줄링 : 어떤 프로세스를 먼저, 얼마나 오래 실행할까?)
- 메모리 (페이징, 스와핑,---)
- 입출력 장치
파일 시스템 관리
- 관련된 정보를 파일이라는 단위로 저장 장치에 보관
- 파일들을 묶어 폴더(디렉토리) 단위로 저장 장치에 보관
'운영체제' 카테고리의 다른 글
CPU 스케줄링 및 알고리즘 (0) | 2023.02.05 |
---|---|
스레드 : 멀티프로세스와 멀티 스레드 (0) | 2023.02.04 |
프로세스 상태와 계층 구조 (0) | 2023.02.04 |
프로세스의 개요 (0) | 2023.02.04 |