컴퓨터 시스템의 하드웨어 구성 [그림]
컴퓨터 시스템이 동작할 때 하드웨어에서 일어나는 일
- 입력장치 혹은 네트워크 어댑터를 통해서 컴퓨터에서 처리 요청이 들어온다.
- 메모리에 있는 명령을 읽어 CPU에서 실행하고 그 결괏값을 다시 메모리의 다른 영역에 기록한다.
- 메모리의 데이터를 하드디스크(HDD)나 SSD 등의 저장 장치에 기록 또는 네트워크를 통해 다른 컴퓨터에 전송하거나 디스플레이 등의 출력 장치를 통해 사람에게 결괏값을 보여줌
- 1번부터 반복 1~3을 반복해서 사용자에게 필요한 하나의 처리로 정리한 것을 프로그램이라고 한다.
프로그램의 종류
- 애플리케이션 : 사용자가 직접 사용. ex) 오피스 프로그램, 각종 앱 등
- 미들웨어 : 애플리케이션이 공통으로 사용하는 처리를 묶어서 애플리케이션의 실행을 도와줌. ex) 웹 서버, 데이터 베이스
- OS(운영체제) : 하드웨어를 직접 조작하여 애플리케이션이나 미들웨어의 실행에 필요한 기능을 제공 ex) 리눅스, ms 윈도우, OSX
OS가 프로그램을 실행 -> 프로세스라는 단위로 실행 각 프로그램은 1개 혹은 여러개의 프로세스로 구성됨
[정리] 리눅스의 중요한 역할
-
외부 장치(=디바이스, ex. 모니터, 마우스, 키보드) 조작
- OS가 없으면 프로세스가 각각 디바이스를 조작하는 코드를 작성해야함
- 애플리 케이션 개발자가 디바이스 스펙을 상사히 알아야함
- 개별 개발이므로 개발 비용이 커짐
- 멀티프로세스가 동시에 디바이스를 조작할 경우 예상 외의 동작 발생할 수 있음 => 디바이스 드라이버라는 프로그램을 통해 디바이스를 다룸 => 프로세스가 직접 하드웨어에 접근하는 것을 차단함
- OS가 없으면 프로세스가 각각 디바이스를 조작하는 코드를 작성해야함
-
커널 모드에서의 처리 ?
- 커널 모드에서 동작하는 처리
- 프로세스 관리 시스템
- 프로세스 스케쥴링
- 메모리 관리 시스템
- 프로세스가 커널이 제공하는 기능을 사용하는 방법
- 시스템 콜이라는 특수한 처리를 통해 커널에 요청
- 커널 모드에서 동작하는 처리
-
커널 : 커널모드에서 동작하는 OS의 핵심 부분이 되는 처리를 모아 담당하는 프로그램
- 커널은 CPU나 메모리 등 리소스 관리
- 리소스의 일부를 시스템에 존재하는 각 프로세스에 적절히 분배
[그림]
- 2장: 사용자 모드에서 동작하는 OS기능 및 프로세스, 커널과의 인터페이스가 되는 시스템 콜
- 3장: 커널의 프로세스 생성, 파괴를 담당하는 프로세스 관리 시스템
- 4장: CPU 자원을 관리하는 프로세스 스케쥴러
- 5장: 메모리 자원을 관리하는 메모리 관리 시스템
- 6장: 기억 장치 계층
- 7장: 저장 장치에 보관된 데이터에 접근하기 위해 이용하는 파일시스템 이라는 프로그램
- 8장: 저장 장치 성능의 특징, 성능을 이끌어 내기 위한 커널의 지원기능