운영체제를 알아보자 - 1

포비·2025년 6월 17일

알아보자

목록 보기
12/111
post-thumbnail

1. 운영체제(Operating System)

운영체제는 컴퓨터 자원을 효율적으로 관리하고 사용자가 편리하게 컴퓨터를 활용할 수 있는 환경을 제공하는 시스템 소프트웨어입니다.

1.1 운영체제의 주요 목적 및 기능

  • 사용의 용이성
    하드웨어와 정보를 효율적으로 관리하여 컴퓨터를 편리하게 사용하도록 지원

  • 시스템 성능 향상

    • 처리 능력 (Throughput): 일정 시간 동안 처리하는 작업량
    • 응답 시간 (Turnaround Time): 작업 완료까지 걸리는 시간
    • 가용성 (Availability): 시스템 자원의 신속한 제공 여부
    • 신뢰도 (Reliability): 시스템의 정확한 동작 정도
  • 주요 기능

    • 자원 관리: 메모리, 프로세스, 주변 장치, 파일(데이터) 관리
    • 시스템 관리: 시스템 보호, 네트워킹, 명령 인터프리터 제공
  • 역할

    • 사용자 인터페이스 제공
    • 주변 장치 관리
    • 자원 분배 및 효율적 관리
    • 신뢰성 향상 및 오류 처리
  • 역할이 아닌 것

    • 원시 프로그램 기계어 번역(컴파일러)
    • 목적 프로그램 생성 및 연결(링커)
    • 데이터 압축 및 복원(유틸리티)

1.2 운영체제 구성 요소

  • 커널 (Kernel)
    운영체제의 중심부로 하드웨어를 직접 관리하고 제어
  • 시스템 호출 (System Call)
    사용자 프로그램이 운영체제(커널) 권한이 필요한 작업을 요청하는 방법

2. 운영체제 연산: 커널과 시스템 호출

운영체제는 인터럽트 기반(interrupt driven)으로 동작하며, 주로 사용자 모드(User Mode)커널 모드(Kernel Mode)로 구분하여 실행됩니다.

2.1 트랩과 시스템 호출

  • 트랩 (Trap)
    오류 발생 시 또는 운영체제 서비스 요청 시 발생하는 소프트웨어 인터럽트
  • 시스템 호출 (System Call)
    사용자 프로그램이 운영체제에 특정 작업을 요청하는 방법 (트랩 통해 실행)

2.2 사용자 모드와 커널 모드

구분사용자 모드 (User Mode)커널 모드 (Kernel Mode)
실행 환경일반 응용 프로그램 실행 환경운영체제 핵심 기능 실행 환경
접근 권한하드웨어 직접 접근 불가하드웨어 직접 접근 가능
명령어 실행제한된 명령어만 실행 가능모든 명령어 실행 가능
역할시스템 호출을 통해 운영체제 서비스 요청프로세스, 메모리 관리, 장치 제어 수행
  • 시스템은 보통 커널 모드에서 부팅되고, 응용 프로그램 실행 시 사용자 모드로 전환
  • 입출력 등 권한이 필요한 작업 시 시스템 호출로 커널 모드 전환하여 보안과 안정성 확보

2.3 커널과 쉘

  • 커널
    운영체제 핵심 부분, 하드웨어 직접 관리, 프로세스/메모리/파일 시스템/입출력 장치 관리
  • 쉘 (Shell)
    사용자와 운영체제(커널) 사이 인터페이스 역할, 명령어 해석 및 실행, 결과 전달

3. 운영체제 구조

  • 간단한 구조 (Simple Structure)
    초기 시스템에 사용 (MS-DOS, 초기 UNIX)
  • 계층적 접근 (Layered Approach)
    운영체제를 계층별로 모듈화 (THE 운영체제, OS/2)
  • 마이크로커널 (Microkernel)
    핵심 기능만 커널에 두고 나머지는 사용자 공간에서 수행 (Mach 운영체제)
  • 모놀리식 커널 (Monolithic Kernel)
    모든 핵심 기능을 커널 내부에 포함 (Linux, UNIX)

4. 운영체제 발달 과정

운영 방식특징
일괄처리(배치 시스템)데이터 모아 한꺼번에 처리, CPU 유휴 시간 발생
다중 프로그래밍 시스템하나의 CPU가 여러 프로그램 동시에 실행, CPU 활용도 향상
시분할 시스템여러 사용자가 동시에 프로그램 실행, CPU 시간 분할
다중 처리 시스템여러 CPU가 병렬 처리, CPU 간 부하 분산 중요
실시간 처리 시스템즉각적 데이터 처리, 응답 시간 매우 짧음
다중 모드 처리 시스템여러 처리 방식을 조합하여 유연성 향상
분산 처리 시스템여러 컴퓨터가 네트워크로 작업 공유 및 협력

프로세스(Process)

1. 프로세스 개요

  • 프로세스 정의
    현재 실행 중이거나 곧 실행 가능한 PCB(프로세스 제어 블록)를 가진 프로그램
  • 특징
    실행 중인 프로그램, 비동기적 활동, 살아 있는 프로그램, PCB 보유

1.1 프로그램과 프로세스 차이

구분프로그램 (Program)프로세스 (Process)
정의디스크에 저장된 수동적 실체실행 흐름을 가진 능동적 실체
특성정적인 파일동적 실행 상태, 프로그램 카운터 및 PCB 포함

1.2 프로세스의 메모리 구조

  • 코드(Code) 영역: 실행 가능한 프로그램 코드
  • 데이터(Data) 영역: 전역 변수, 정적 변수
  • 힙(Heap) 영역: 동적 메모리 할당 영역 (malloc 등)
  • 스택(Stack) 영역: 지역 변수, 함수 호출 인자, 복귀 주소

2. 프로세스 제어 블록(PCB)

  • 프로세스 관리 위한 자료구조

2.1 PCB 주요 정보

  • 프로세스 상태 (대기, 실행, 준비 등)
  • 프로세스 ID
  • 프로그램 카운터(PC)
  • 레지스터 정보
  • 메모리 관리 정보
  • 계정 정보 (CPU 사용 시간 등)
  • 입출력 정보

2.2 PCB 역할

  • 프로세스 상태 저장
  • 문맥 교환 시 프로세스 정보 복원

3. 프로세스 상태와 상태 전이

3.1 프로세스 상태

  • 생성 상태 (Created)
  • 준비 상태 (Ready)
  • 실행 상태 (Running)
  • 대기 상태 (Waiting/Blocked)
  • 지연 준비 상태 (Suspended Ready)
  • 지연 대기 상태 (Suspended Waiting)

3.2 상태 전이

이벤트상태 전이
디스패치준비 상태 → 실행 상태 (CPU 할당)
할당 시간 초과실행 상태 → 준비 상태
블록실행 상태 → 대기 상태
웨이크업대기 상태 → 준비 상태

4. 프로세스와 스레드

4.1 프로세스와 스레드 비교

구분프로세스 (Process)스레드 (Thread)
정의독립적 메모리 공간 가진 실행 중 프로그램프로세스 내 최소 실행 단위
메모리독립적 메모리 공간메모리와 자원 공유
관리운영체제에 의해 관리프로세스 내에서 다중 작업 수행 가능
포함 관계여러 스레드 포함 가능하나 프로세스 내 여러 스레드 가능

4.2 싱글 스레드와 멀티 스레드

  • 싱글 스레드: 순차 처리, 구현 간단
  • 멀티 스레드: 병렬 처리, 응답성 향상, 동기화 문제 가능

4.3 커널 스레드와 사용자 스레드

구분커널 스레드 (Kernel Thread)사용자 스레드 (User Thread)
관리운영체제 커널이 직접 관리사용자 공간에서 관리
생성 및 관리시스템 호출 필요커널 개입 없이 생성 및 관리 가능
특징안정성 높음, 전환 비용 발생빠르고 효율적, 하나 블록 시 전체 영향

느낀점

중간고사때 했던건데 다시할려니까 어렵네요 역시 공부는 끝이 없당
마크다운으로 테이블 첨 만들어보는데 생각보다 어렵네요.

profile
무엇이든 필요한 것을 합니다. https://mint-middle-1e5.notion.site/2b7655e8316980ad9422d96a6f3947de

1개의 댓글

comment-user-thumbnail
2025년 6월 17일

오에스 사랑합니다.

답글 달기