[운영체제] 운영체제와 컴퓨터

2024. 10. 17. 23:02·💻 CS/운영체제

운영체제와 컴퓨터 ☕️

운영체제와 컴퓨터의 요소들에 대해 알아보는 시간을 가져보겠습니다. 운영체제가 하드웨어와 소프트웨어 사이에서 어떻게 작동하고 있는지, 그리고 컴퓨터의 구성 요소들이 각각 어떤 역할을 하는지 차근차근 살펴보겠습니다.

운영체제란 무엇인가? 🤔

운영체제(OS, Operation System)는 하드웨어와 소프트웨어를 관리하고, 사용자가 컴퓨터를 쉽게 다루도록 도와주는 일종의 인터페이스입니다. 하드웨어와 사용자 사이에서 "일꾼" 역할을 하는 것입니다.

운영체제의 주요 역할 🚀

운영체제의 역할은 크게 네 가지로 나눌 수 있습니다.

  1. CPU 스케줄링과 프로세스 관리: CPU 소유권을 어떤 프로세스에 할당할지 결정하고, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리합니다.
  2. 메모리 관리: 한정된 메모리를 각 프로세스에 어떻게 할당할지 관리합니다.
  3. 디스크 파일 관리: 디스크 파일을 어떤 방식으로 보관하고 관리할지 결정합니다.
  4. I/O 디바이스 관리: 키보드나 마우스 등 I/O 장치와의 데이터 교환을 관리합니다.

운영체제의 구조 🛠️

운영체제는 다음과 같은 구조로 이루어져 있습니다.

  • 유저 프로그램: 사용자가 실행하는 소프트웨어입니다.
  • GUI, 시스템콜, 커널, 드라이버: 사용자가 컴퓨터와 상호작용하기 위해 제공되는 다양한 계층들입니다.
  • 하드웨어: 가장 밑바닥에 위치한 실제 장치입니다.

운영체제의 일부인 커널은 하드웨어와 응용 프로그램 간의 상호작용을 관리하는 역할을 합니다.

📚 용어 정리

  • GUI (Graphical User Interface): 아이콘을 마우스로 클릭하여 상호작용할 수 있는 사용자 인터페이스
  • CUI (Command User Interface): 명령어를 입력해 컴퓨터와 상호작용하는 인터페이스
  • 쉘 (Shell): 사용자가 명령어를 입력해 운영체제에 전달하는 인터페이스
  • 커널 (Kernel): 하드웨어와 응용 프로그램 사이의 상호작용을 관리하는 운영체제의 핵심
  • 드라이버: 하드웨어를 제어하기 위한 소프트웨어

시스템콜(System Call)이란? 🤖

시스템콜은 운영체제가 커널에 접근하기 위한 인터페이스를 의미합니다. 사용자 프로그램(SW)이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용하는 인터페이스입니다.

프로세스나 스레드에서 운영체제로 요청할 때 시스템 콜을 사용해서 커널을 거쳐 운영체제에 전달하게 됩니다. 이를 통해 네트워크 통신이나 데이터베이스 처리 같은 복잡한 작업을 쉽게 구현할 수 있습니다.

정리❗
사용자 프로그램이 I/O 요청을 처리하기 위해서는 운영체제의 서비스를 받아야 하고, 이러한 서비스는 커널을 통해서만 받을 수 있습니다. 그래서 시스템 콜을 통해 커널에 요청하고, 커널이 이를 운영체제에 전달하여 처리를 합니다.

컴퓨터의 구성 요소들 🔧

컴퓨터는 CPU, DMA 컨트롤러, 메모리, 타이머, 디바이스 컨트롤러 등으로 구성되어 있습니다. 각 요소가 어떤 역할을 하는지 알아볼까요?

1. CPU (Central Processing Unit) 🧠

CPU는 산술논리연산장치(ALU), 제어장치(CU), 레지스터(R)로 이루어져 있습니다. 인터럽트가 발생하면 메모리에 있는 명령어를 해석하고 실행하는 장치입니다.

  • 산술논리연산장치(ALU): 덧셈, 뺄셈 같은 산술 연산과 논리 연산을 담당합니다.
  • 제어장치(CU): 명령어를 읽고 해석하여 처리 순서를 결정합니다.
  • 레지스터(R): CPU 내 임시 기억 장치로, 연산 속도가 매우 빠릅니다.

📢 인터럽트(Interrupt): 프로세서가 실행 중인 작업을 잠시 멈추고, 즉각 처리해야 할 중요한 이벤트가 발생했을 때 이를 처리하기 위해 호출되는 신호입니다.

인터럽트는 크게 두 가지로 나눌 수 있습니다.

  • 하드웨어 인터럽트: 키보드나 마우스 같은 I/O 디바이스에서 발생하는 인터럽트입니다.
  • 소프트웨어 인터럽트: 프로세스 오류 등으로 발생하는 인터럽트로, 트랩(trap)이라고도 불립니다.

2. DMA 컨트롤러 (DMA Controller) 🛠️

DMA (Direct Memory Access) 컨트롤러는 CPU의 개입 없이 메모리와 주변 장치 간 데이터를 직접 전송하도록 돕는 장치입니다. 대용량 데이터 전송 시 CPU의 부하를 줄이는 역할을 합니다.

3. 메모리 (Memory) 💾

메모리는 컴퓨터 시스템에서 데이터를 저장하고 처리하기 위한 공간입니다. 보통 RAM을 가리키며, 휘발성 메모리로 전원이 꺼지면 데이터가 사라집니다.

4. 타이머 (Timer) ⏱️

타이머는 컴퓨터 시스템에서 일정한 시간 간격을 측정하거나 특정 시간에 맞춰 작업을 수행할 수 있도록 해주는 장치입니다. 프로세스가 시간을 초과할 경우 인터럽트를 발생시켜 시스템이 조치를 취할 수 있게 돕습니다.

5. 디바이스 컨트롤러 (Device Controller) 🔌

디바이스 컨트롤러는 입출력 장치와 컴퓨터 시스템 간의 데이터를 관리하고 제어합니다. 로컬 버퍼를 사용해 데이터를 임시 저장하고, 입출력 작업이 완료되면 인터럽트를 발생시켜 CPU에게 알립니다.


이렇게 운영체제의 역할과 컴퓨터의 주요 구성 요소들에 대해 알아보았습니다. 다음 글에서는 메모리 관리와 프로세스 스케줄링에 대해 좀 더 깊이 알아보는 시간을 가져보겠습니다!

'💻 CS > 운영체제' 카테고리의 다른 글

[운영체제] CPU 스케줄링 알고리즘  (0) 2024.10.22
[운영체제] 프로세스와 스레드  (0) 2024.10.18
[운영체제] 메모리 : 메모리의 계층, 메모리 관리  (0) 2024.10.17
'💻 CS/운영체제' 카테고리의 다른 글
  • [운영체제] CPU 스케줄링 알고리즘
  • [운영체제] 프로세스와 스레드
  • [운영체제] 메모리 : 메모리의 계층, 메모리 관리
kkongdo
kkongdo
kkongdo 님의 블로그 입니다.
  • kkongdo
    숲을 바라보며 나무를 심는 아이
    kkongdo
  • 전체
    오늘
    어제
    • 분류 전체보기 (32)
      • 🌏 Web (0)
      • ☕ Java (5)
      • 🌱 Spring (9)
        • Spring Boot (7)
        • Spring Data JPA & QueryDSL (2)
      • 🗂️ Database (5)
      • 💻 CS (12)
        • 운영체제 (4)
        • 네트워크 (5)
        • 자료구조 (3)
      • 🗃️Git (1)
      • 🔍 Algorithm (0)
      • 📡 DevOps (0)
        • Docker (0)
      • 🔭 ETC (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • GitHub
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SpringSecurity
    db
    java
    운영체제
    스케줄링
    SpringMVC
    네트워크
    @annotation
    복잡도
    spring
    OS
    조인
    DI
    JPA
    데이터베이스
    CS
    springbatch
    QueryDSL
    자료구조
    네트워크기기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
kkongdo
[운영체제] 운영체제와 컴퓨터
상단으로

티스토리툴바