[운영체제] 1강 - 운영체제 소개

2026. 2. 18. 22:46·방송통신대학교/⚙️운영체제

✅ 1. 운영체제란 무엇인가?

(1) 컴퓨터 시스템의 구성

  • 컴퓨터 시스템은 사용자, 응용 소프트웨어, 시스템 소프트웨어, 하드웨어로 나뉜다.
  • 그중 운영체제는 대표적인 시스템 소프트웨어이다.
  • 시스템 소프트웨어: 하드웨어를 제어하고, 응용 프로그램이 실행될 수 있는 환경을 제공해주는 소프트웨어이다.
  • 쉽게말해, 사용자가 직접 명령을 내리기보다는 컴퓨터 내부에서 자동으로 돌아가는 경우가 많으며, 대표적으로는 컴파일러, 운영체제 등이 있다.

(2) 운영체제의 역할

[ 컴퓨터 시스템의 자원 관리 ]

  • 하드웨어, 소프트웨어, 데이터 자원을 관리를 해줌.
  • 예시: 저장장치에서 데이터 읽어오기, 키보드나 마우스 제어, 프로그램 동시 실행 시 CPU와 메모리를 효율적으로 관리
  • 사용자를 위해서 컴퓨터 시스템을 효율적으로 운영하는 목적이 있음.

[ 사용자 지원 ]

  • 사용자가 내린 명령을 해석하여 실행하게 함
  • 사용자와 하드웨어 사이의 매개체 역할
  • 사용자에게 편의성을 제공하는 목적
  • ** 사용자 지원에 대한 목적이 결국에는 컴퓨터 시스템의 자원 관리를 통해서 이뤄지게 됨. **

(3) 컴퓨터 시스템과 운영체제 - 운영체제가 없는 컴퓨터 시스템

  • 운영체제가 없던 초기의 컴퓨터 시스템: 응용 프로그램이 직접 컴퓨터 시스템의 자원을 제어했었음.
  • 즉, 사용자가 응용 소프트웨어 프로그램을 만들고자 하면, 하드웨어에 대한 지식을 알고있어야 개발이 가능했었음.
  • 결론: 응용 프로그램에 대한 개발에 대한 난이도가 매우 높았음.
  • 하나의 하드웨어 여러 사용자 공유: 응용 프로그램 여러개가 하나의 하드웨어에서 동작하게 되면, 하드웨어 내부의 CPU나 메모리 등의 자원에 대한 충돌이 일어날 수 있어서 응용 프로그램간의 호환성을 고려해야 된다는 어려움이 있음.

(4) 컴퓨터 시스템과 운영체제 - 운영체제가 있는 컴퓨터 시스템

  • 하드웨어와 응용 프로그램 사이에 운영체제가 위치함.
  • 운영체제가 컴퓨터 시스템의 자원을 제어
  • 컴퓨터 시스템이 안정적이고 효율적으로 동작할 수 있게 됨.
  • 또한, 시스템 콜을 통해 응용 프로그램을 쉽게 만들 수 있게 됨.

(5) 커널 모드 & 사용자 모드

(6) 커널(kernel)

  • 커널(kernel): 커널 모드에서 동작하는 운영체제의 핵심 요소이다.
  • 쉽게말해, 하드웨어(CPU, 메모리, 디스크 등)를 직접 제어하고 관리하는 실제 코드 집합이자 운영체제의 핵심 프로그램이다.
  • ** 또한, 커널은 하드웨어 제어 및 관리 코드를 시스템 콜 함수로써 표준 인터페이스를 제공을 해주고 있다. **
  • 커널은 일체형 커널 또는 마이크로커널로 만들어 질 수 있음.

  • 일체형 커널은 운영체제의 모든 서비스가 커널 내에 포함이 되어서, 커널 = 운영체제인 경우이다.

  • 운영체제의 가장 핵심적인 요소들만 커널로 보고, 나머지는 외부로 분리를 해놓은 마이크로 방식임.

[ 정리 ]

  • 일체형 커널, 마이크로 커널 둘 다 결론은 운영체제의 핵심 기능을 담고 있음.
  • 일체형 커널 방식은 운영체제의 핵심 기능뿐 아니라 모든 기능들을 다 커널에 담고 있는 개념임.
  • 마이크로 커널 방식은 운영체제의 핵심 기능만 가지고 있고, 나머지 기능(파일 시스템, 장치 드라이버, 네트워크 스택, 가상 메모리 관리자 등)은 외부로 빼 커널에 포함된 IPC 를 통해서 통신을 하는 방식임.
  • 마이크로 커널 방식은 IPC 통신으로 인해 오버헤드가 발생할 수 있다는 단점을 가지고 있음.
  • 또한, 현재의 운영체제들은 일체형 커널 + 마이크로커널을 일부분 혼용하면서 사용하고 있음.

(7) 시스템 호출(system call)

  • 커널 자체도 결국 C나 어셈블리어로 작성된 실행 가능한 코드의 집합임.
  • 즉, 해당 코드 안에는 하드웨어를 제어하고 자원을 관리하는 복잡한 함수들이 구현이 되어있음.
  • ** 결론은 해당 복잡한 함수들 중에서 운영체제의 하드웨어 제어나 접근을 하는 함수들을 운영체제 개발자가 API 로써 제공을 해주고 있으며, 해당 API 가 결국엔 시스템 콜로 볼 수 있음. **
  • 해당 시스템 콜을 하게 되면 내부적으로는 커널 모드로 바뀌며, 운영체제의 커널 함수를 호출해서 실행 할 수 있게 됨.

✅ 2. 운영체제의 구성

  • 컴퓨터 시스템의 자원의 성격에 따라 크게 4가지로 나뉨.

(1) 프로세스 관리자

  • 프로세스의 생성 및 삭제
  • CPU 할당을 위한 스케줄 결정(스케줄링)
  • 프로세스의 상태를 관리하며 상태 전이 처리

(2) 메모리 관리자

  • 메모리(주기억장치) 공간에 대한 요구의 유효성 확인
  • 메모리 할당 및 회수
  • 메모리 공간 보호: 프로세스들이 메모리 공간에 겹치게 되면 오류가 남 이런걸 잘 관리해줘야함.

(3) 장치 관리자

  • 컴퓨터 시스템의 모든 장치 관리
  • 시스템 장치의 할당, 작동, 반환

(4) 파일 관리자

  • 컴퓨터 시스템의 모든 파일 관리
  • 저장장치의 공간 관리
  • 파일의 접근 제한 관리
  • ** 기존의 파일 데이터가 사라지지 않게 접근 및 공간 관리를 잘해야함. **

✅ 3. 운영체제의 유형

  • 운영체제는 대표적으로 일괄처리, 시분할, 실시간, 분산 4가지가 있음.
  • 이 밖에도 다양한 종류의 운영체제가 존재는 함.

(1) 일괄처리 운영체제(Batch processing)

  • 최초의 운영체제이며, 작업(프로그램)을 모아서 한 번에 순서대로 처리하는 방식이다.
  • ** 해당 방식은 매우 간단하지만, 나중에 들어온 작업이 많은 시간을 기다릴 수 있다는 단점이 있음. **

(2) 시분할 운영체제(Time-sharing)

  • 프로그램들이 특정 시간 만큼만 수행 하며, 비교적 공평하게 프로그램이 수행되는 운영체제 방식임.
  • 동작 원리: CPU 시간을 아주 짧은 시간 단위로 나누어 여러 프로세스에 번갈아 할당함.
  • 목적: 자원의 효율적 사용과 사용자의 응답 시간을 최소화하는게 목적임.
  • 현대 범용 OS(Windows, macOS, Linux)의 근간이며, 공평성을 중시함.

(3) 실시간 운영체제(Real-time - RTOS)

  • 동작 원리: 우선순위가 높은 작업이 들어오면 현재 작업을 즉시 중단하고 해당 작업을 처리함.
  • ** 빠른것보단 일정한 시간 내에 끝내는 것을 훨씬 중요하게 여기는 방식임. ( 즉, 데드라인을 정해서 해결하는 방식 ) **
  • 주로 임베디드 시스템, 군사 무기 제어, 항공기 항법 시스템에서 사용이 됨.

(4) 분산 운영체제

  • 쉽게말해, 지리적으로 떨어져 있는 여러 개의 컴퓨터 시스템을 통신망으로 연결하여, 사용자가 하나의 거대한 컴퓨터를 사용하는 것처럼 느끼게 해주는 운영체제임.( 여러 컴퓨터 시스템을 통으로 관리하는 운영체제로 보면 됨. )

'방송통신대학교 > ⚙️운영체제' 카테고리의 다른 글

[운영체제] 6강 - 교착상태(1)  (0) 2026.03.20
[운영체제] 5강 - 병행 프로세스(2)  (0) 2026.03.18
[운영체제] 4강 - 병행 프로세스(1)  (0) 2026.03.06
[운영체제] 3강 - 프로세스 스케줄링  (0) 2026.02.27
[운영체제] 2강 - 프로세스와 쓰레드  (0) 2026.02.19
'방송통신대학교/⚙️운영체제' 카테고리의 다른 글
  • [운영체제] 5강 - 병행 프로세스(2)
  • [운영체제] 4강 - 병행 프로세스(1)
  • [운영체제] 3강 - 프로세스 스케줄링
  • [운영체제] 2강 - 프로세스와 쓰레드
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • 전체
    오늘
    어제
    • 전체보기 (233)
      • 방송통신대학교 (87)
        • ⚙️컴퓨터의 이해 (11)
        • 💻컴퓨터과학 개론 (15)
        • 🔢자료구조 (14)
        • 🧬알고리즘 (10)
        • ⚙️운영체제 (14)
        • 🕸️이산수학 (11)
        • 🌍유비쿼터스 컴퓨팅 (11)
        • 🖥️컴퓨터과학과 (1)
      • 공부 (72)
        • 📚백엔드 공부 (6)
        • ☕Java (23)
        • 🌳Spring (13)
        • ⚙️C (12)
        • ⚡Python (15)
        • JavaScript (1)
        • 🛢️Database (0)
        • Algorithm Problem Solving (2)
      • 네트워크 (7)
        • 📜HTTP (7)
      • 스파르타코딩클럽 (64)
      • 정보 (2)
      • 정리가 필요한 글 (1)
  • 블로그 메뉴

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

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    자바
    파이썬
    컴퓨터의 이해
    이산수학
    배열
    C언어
    Python
    컴퓨터과학 개론
    운영체제
    Java
    유비쿼터스
    방송대
    방송통신대학교
    spring
    함수
    알고리즘
    그래프
    방통대
    자료구조
    컴퓨터과학과
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
junbin2
[운영체제] 1강 - 운영체제 소개
상단으로

티스토리툴바