menuhwang

컴퓨터와 OS 본문

컴퓨터 공학/OS

컴퓨터와 OS

menuhwang 2023. 11. 20. 15:20

컴퓨터

 

컴퓨터는 크게 하드웨어와 소프트웨어로 나눌 수 있고, 소프트웨어는 커널과 Application으로 나뉜다.

 

컴퓨터의 모든 것이 여기서 시작한다고 볼 수 있다.

 

OS는 하드웨어를 제어하기 위한 SW이며, 커널과 일부 service, daemon까지를 OS라고 한다.

 

RedHat이나 Ubuntu, Android 등 같은 리눅스 커널 기반의 OS이다.

 

용어

인터럽트 (Interrupt)

인터럽트는 어떤 신호가 들어왔을 때 CPU를 잠깐 정지시키는 것을 말한다.

IRQ: Interrupt Request 인터럽트 요청, 인터럽트 번호를 갖는다.

 

인터럽트가 발생되면 CPU가 하던일을 멈추고 인터럽트를 처리한다.

인터럽트에는 우선순위가 있고 우선순위에 따라 실행된다.

시스템콜 (System Call)

유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용한다.

API가 커널 함수를 호출하는 진입점.

 

컴퓨터 자원에 대한 직접 접근을 차단할 수 있음.

 

Hello World 예제로 보는 프로그램 실행 과정

#include <stdio.h>

int main() {
    printf("Hello world!\n");
    return 0;
}

 

1. printf라는 API를 호출한다.

2. printf가 System Call을 호출한다.

    2.1. 커널 모드 진입

3. 디바이스 드라이버(ex: 그래픽)를 제어한다.

4. 디바이스 드라이버가 인터럽트를 요청한다. (IRQ)

5. CPU는 인터럽트에 대한 처리를 실행한다.

    5.1. 모니터에 Hello World 출력

6. 처리가 완료되면 처리 완료에 대한 인터럽트를 발생한다.

7. System Call에 대한 제어권 반환.

8. API (printf)에 제어권 반환.

9. 완료!

 

참고

유튜브 - 널널한 개발자

면접을 위한 CS 전공지식 노트 - 주홍철 지음

'컴퓨터 공학 > OS' 카테고리의 다른 글

캐시 메모리  (0) 2023.11.27
인터럽트  (0) 2023.11.21
Comments