컴퓨터 시스템의 개요
요즈음 세상에는 다양한 컴퓨터 시스템이 있다. 우리 주위에는 컴퓨터, 스마트폰, 태블릿 등이 있고 회사에서는 서버용이 있다.
컴퓨터 시스템의 하드웨어 구성
컴퓨터 시스템 동작할 때 하드웨어 순서
- 입력 장치 혹은 네트워크 어댑터를 통해서 컴퓨터에 무언가 처리 요청이 들어온다.
- 메모리에 있는 명령을 읽어 CPU에서 실행하고 그 결괏값을 다시 메모리의 다른 영역에 기록한다.
- 메모리의 데이터를 하드디스크(이하 HDD로 표기)나 SSD 등의 저장 장치에 기록 또는 네트워크를 통해 다른 컴퓨터에 전송하거나 디스플레이 등의 출력 장치를 통해 사람에게 결괏값을 보여준다.
- 1번부터 반복해서 실행한다.
프로그램 종류
- 애플리케이션: 사용자가 직접 사용한다.
- 미들웨어: 여러 가지 애플리케이션이 공통으로 사용하는 처리를 묶어서 애플리케이션의 실행을 도와준다.
- OS: 하드웨어를 직접 조작하여 애플리케이션이나 미들웨어의 실행에 필요한 기능을 제공한다.
위의 프로그램은 연동되어 작동한다.
프로그램이 서로 연동되어 동작
OS
일반적으로 os
는 여러 가지 프로그램을 프로세스라고 하는 단위로 실행한다.
프로세스는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다.
밑에 그림과 같이 각 프로그램은 1개 혹은 여러 개의 프로세스로 구성된다.
리눅스를 포함하여 대부분의 os
는 여러 개의 프로세스를 동시에 실행할 수 있다.
리눅스, 리눅스와 하드웨어의 관계
리눅스의 중요한 역할은 외부 장치를 조작하는 일이다.
리눅스 같은 os
가 없으면 여러 개의 프로세스가 각각 디바이스를 조작하는 코드를 작성해야 한다.
OS가 없을 떄의 디바이스 조작 방법
다음과 같이 해도 작동은 하지만 단점이 있다.
단점
- 모든 애플리케이션 개발자가 디바이스의 스펙을 상세히 알아야만 디바이스를 조작 할 수 있다.
- 개별 개발으므로 개발 비용이 커진다.
- 멀티 프로세서가 동시에 디바이스를 조작할 경우 예상외의 동작이 발생할 수 있다.
이러한 단점 때문에 리눅스는 디바이스 드라이버
라고 하는 프로그램을 통해 디바이스를 다룬다.