운영체제
시스템의 자원과 동작을 관리하는 소프트웨어 입니다. 프로세스, 저장장치, 네트워킹, 사용자, 하드웨어 등을 관리하게 됩니다.
- 시스템의 자원(CPU, 메모리)과 동작을 관리하는 소프트웨어
- 프로세스(실행하는 프로그램), 저장장치(메모리, RAM, HDD), 네트워킹, 사용자, 하드웨어를 관리
3.1 운영체제와 컴퓨터
3.1.1 운영체제의 역할과 구조
운영체제의 역할
1. CPU 스케줄링과 프로세스 관리
CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환 관리
2. 메모리 관리
한정된 메모리를 어떤 프로세스에 얼마큼 할당해야 하는지 관리
3. 디스크 파일 관리
디스크 파일을 어떠한 방법으로 보관할지 관리
4. I/O 디바이스 관리
I/O 디바이스(마우스, 키보드)와 컴퓨터 간에 데이터를 주고받는 것을 관리
운영체제의 구조
유저 프로그램 - GUI - 시스템콜 - 커널 - 드라이버 - 하드웨어
GUI/CUI
GUI : 사용자가 전자장치와 상호 작용할 수 있도록 하는 사용자 인터페이스의 한 형태
CUI : 그래픽이 아닌 명령어로 처리하는 인터페이스
시스템콜
- 커널이 제공하는 시스템 자원의 사용과 연관된 함수
- 응용 프로그램이 하드웨어 자원에 접근하거나 운영체제가 제공하는 서비스를 이용
하려 할 때는 시스템콜을 사용해야 함
- 운영체제는 커널이 제공하는 서비스를 시스템콜로 제한하고 다른 방법으로 커널
에 들어오지 못하게 막음으로써 컴퓨터 자원을 보호
ex ) 다른 사람에 의해 데이터가 지워질 수 있음
-시스템콜은 커널이 제공하는 서비스를 이용하기 위한 인터페이스이며, 사용자가
자발적으로 커널 영역에 진입할 수 있는 유일한 수단임
modebit
- 시스템콜이 작동될 때 modebit을 참고해서 유저 모드와 커널 모드를 구분
- 유저 모드일 경우에는 시스템콜을 막아서 한정된 일만 가능
- modebit 0은 커널 모드, 1은 유저 모드
드라이버
하드워어를 제어하기 위한 소프트웨어
폰노이만 구조
- CPU, 메모리, 입출력장치, 저장장치가 버스(데이터가 지나다니는 통로)로 연결되어 있는 구조
- 폰노이만 구조의 가장 큰 특징을 저장장치에서 바로 실행할 수 없고, 메모리로 가지고 올라와야지만 실행 가능함
3.1.2 컴퓨터의 요소
CPU
- 산술논리연산장치, 제어장치, 레지스터로 구성
- 인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석해서 실행
산술논리 연산장치
데이터의 덧셈, 뺄셈, 곱셈, 나눗셈 같은 산술 연산과 AND, OR 같은 논리 연산을 수행
제어장치
CPU에서 작업을 지시
레지스터
CPU 내에 데이터를 임시로 보관
CPU의 명령어 처리 과정
- 제어장치가 메모리에 계산할 값을 로드하고 레지스터에도 로드
- 제어장치가 레지스터에 있는 값을 계산하라고 산술논리연산장치에 명령
- 제어장치가 계산된 값을 다시 '레지스터에서 메모리로' 저장
인터럽트
프로세스가 수행 중에 다른 프로세스를 수행하기 위하여 현재 수행 중인 프로세스를 중단하거나 외부 입력장치에 의해 프로세스가 중단되는 상태
메모리
데이터나 상태, 명령어 등을 기록하는 장치
타이머
몇 초 안에는 작업이 끝나야 한다는 것을 정하고, 특정 프로그램에 시간 제한을 다는 역할
출처
면접을 위한 CS 전공지식 노트(2022, 주홍철)