컴퓨터는 하드웨어와 소프트웨어로 구성됩니다.
운영체제(소프트웨어)
컴퓨터를 쉽게 다루도록 도와주는 인터페이스. 프로세스를 만들고 지우며, CPU에게 일(프로세스)를 할당합니다. 즉, 프로세스와 CPU 스케줄을 관리합니다. 또한 한정적인 메모리를 효율적으로 관리하며, 디스크에 데이터를 관리하고 키보드, 마우스와 같은 디바이스와 컴퓨터가 데이터를 주고받을 수 있도록 관리합니다. 종합적으로 컴퓨터 자원을 효율적으로 관리하는 역할을 합니다.
운영체제의 구조
유저 프로그램 |
GUI, CUI(쉘) |
시스템콜 |
커널 |
드라이브 |
하드웨어 |
위의 표는 운영체제의 구조를 계층별로 나타내고 있습니다. 크게 보면 맨 밑의 하드웨어 위에 커널이 있고, 그 위에 시스템콜이 있고, 유저 프로그램(사용자)이 있습니다. 위에서 GUI, CUI ~ 드라이버까지를 운영체제라고 합니다.
커널은 운영체제의 심장이라고 할 수 있습니다. 운영체제의 전반적인 역할을 담당합니다. 즉, 컴퓨터 자원을 관리합니다. 유저 프로그램이 직접적으로 컴퓨터 자원을 접근하지 못하도록 시스템 콜이라는 인터페이스를 둡니다. 유저 프로그램이 컴퓨터 자원 사용 요청을 보내면 시스템콜을 통해 커널에 접근할 수 있게 됩니다. 드라이버는 하드웨어를 제어하기 위한 소프트웨어를 말합니다.
사용자 프로그램이 시스템을 손상시키지 못하도록 사용자 모드와 커널 모드를 나눠서 관리합니다. 사용자 모드에서 사용자 프로그램에서 컴퓨터 자원 사용하려는 코드가 실행되면 컴퓨터 자원에 직접적으로 접근할 수 없기 때문에 시스템 콜을 요청합니다. 그러면 커널 모드로 변환되고, 운영체제가 하드웨어를 제어하는 명령어를 실행합니다. 작업 완료 후 다시 사용자 모드로 변환됩니다.
컴퓨터의 요소(하드웨어)
중앙처리장치 |
기억장치 |
입출력 장치 |
중앙처리장치, CPU는 실제로 일(프로세스)을 하는 작업자입니다. 관리자인 커널이 할 일을 메모리에 올리면 그 일을 수행합니다. CPU에도 내부에 구성요소가 있는데요, 할 일의 순서를 결정하는 등의 모든 할 일을 통제하는 작업반장 혹은 주임과 같은 역학을 하는 제어장치(CU)와 메모리에서 할 일을 가져와서 잠시 올려놨다가 처리하면 다시 잠시 저장하는 임시 기억장치인 레지스터 마지막으로 실제 연산을 수행하는 산술 논리 연상장치, CPU가 일을 하다가 갑자기 특정 일을 처리해야 할 때 CPU를 잠깐 정지시키는 인터럽트로 구성되어 있습니다.
주 기억장치, 메모리는 할 일(프로세스) 등을 저장하는 역할을 하는 기억장치입니다. 보조기억장치인 SSD, HDD는 CPU와 직접 데이터를 공유할 수 없기 때문에, 주 기억장치인 메모리에 옮겨서 처리하게 됩니다.
입출력 장치는, 마우스, 키보드와 같이 데이터를 컴퓨터에 입력하는 입력장치와, 모니터, 스피커와 같이 처리된 데이터를 출력해 주는 출력장치로 구성됩니다.
그 외, 입출력 장치가 메모리에 직접 접근할 수 있도록 도와서 CPU 부하를 막아주는 DMA 컨트롤러와 특정 작업 시간을 제한하는 타이머, CPU가 대신 입출력을 처리해 주는 작은 CPU 격인 디바이스 컨트롤러가 있습니다.
댓글