[운영체제] 오퍼레이팅 시스템 개요

2025. 1. 28. 01:06·CS/OS

 

전공 수업 내용 정리 (문제 발생시 비공개합니다.)


운영 체제 (Operating System)

운영 체제는 컴퓨터 하드웨어와 응용 프로그램을 연결하는 프로그램으로,

시스템 리소스를 동적으로 관리하고, 메모리 및 프로세스 스케줄링과 같은 작업을 수행합니다.

운영 체제의 주요 목표

  1. 편리성: 사용자가 시스템을 쉽게 사용할 수 있도록 함.
  2. 효율성: 시스템 자원을 최대한 활용.
  3. 발전성: 새로운 하드웨어 및 서비스에 적응할 수 있는 능력.

운영 체제의 역할

  1. 사용자와 컴퓨터 간 인터페이스 제공
    • 프로그램 생성, 파일 관리, I/O 장치 제어를 지원.
    • 프로그래머로부터 하드웨어 세부 정보를 마스킹.
  2. 자원 관리자로서의 역할
    • 데이터 이동, 저장, 처리 등을 위한 자원을 관리.
    • CPU 및 기타 시스템 리소스의 사용 타이밍을 조율.

운영 체제의 진화

운영 체제는 새로운 하드웨어, 서비스 및 수정의 필요성에 따라 발전했습니다.

초기에는 하드웨어 의존적이었지만 점차 모듈화되고 구조화된 형태로 변형되었습니다.

주요 단계

  1. 순차 처리(Serial Processing)
    • 1940~50년대: OS가 없던 시기
    • 작업 전환은 수동으로 수행
    • 문제점: 높은 준비 시간, 스케줄링 시간의 비효율성.
  2. 단순 일괄처리 시스템(Simple Batch Systems)
    • 1960년대 초반: 유사 작업의 일괄 처리로 설정 시간 단축
    • 주요 기능: 작업 제어 언어(JCL), 메모리/I/O 보호, 듀얼 모드 시스템.
    • 문제점: 느린 I/O 장치 속도와 CPU 유휴 시간.
  3. 멀티 배치 시스템(Multiprogrammed Batch Systems)
    • 1960년대 중반: 멀티프로그래밍 개념 도입으로 CPU 활용도 향상.
    • 주요 하드웨어 요구사항: 재배치, 메모리 보호, MMU(Memory Management Unit).
  4. 시분할 시스템(Time Sharing Systems)
    • 1960년대 후반: 여러 사용자가 동시에 컴퓨터를 사용 가능.
    • 주요 특징: 대화형 환경, 시간 조각(Time Slice) 할당, 선점형 스케줄링.
    • 주요 예: CTSS, MULTICS, UNIX

프로세스 (Process)

  • 실행 중인 프로그램.
  • OS가 프로세스를 관리하며, 각 프로세스는 다음 세 가지 구성 요소로 이루어짐:
    1. 수행 중인 프로그램.
    2. 관련 데이터.
    3. 실행 문맥(Execution Context).

스케줄링과 자원 관리의 주요 요소

  1. 공정성: 모든 프로세스가 공정하게 리소스를 사용
  2. 효율성: 시스템 자원을 최대한 활용
  3. 반응성: 사용자 요청에 빠르게 응답

동기화 (Synchronization)

  • 프로그램 간 간섭을 방지하고 교착 상태를 해결하기 위한 메커니즘.

메모리 관리와 보호

  • 프로세스 간 자원을 안전하게 공유하기 위한 메커니즘
  • 시스템 콜(System Call)을 통해 사용자 모드에서 커널 모드로 전환

시스템 콜 (System Call)

  • 프로세스가 커널 서비스를 요청하는 메커니즘
  • 주요 이유: 시스템 자원 보호 및 안정성

파라미터 전달 방법

  1. 레지스터를 통한 전달
  2. 메모리 블록에 저장 후 해당 주소를 전달
  3. 스택을 이용한 전달

System Call과 관련된 메서드들

파라미터 전달 방식

  • 레지스터: 레지스터를 통해 파라미터를 넘겨주는 방식.
  • 메모리 블록: 파라미터를 메모리 블록에 저장하고, 해당 블록의 주소를 레지스터로 전달.
  • 스택: 파라미터를 스택에 push하거나 pop하여 전달.
  • 메모리 블록과 스택 메서드는 전달되는 파라미터의 길이와 개수에 제약이 없음.

프로세스

스케줄링

  • 공정성과 효율성을 극대화하기 위한 다양한 알고리즘 적용.

인터프로세스 커뮤니케이션(IPC)

  • 프로세스 간 데이터 교환 및 동기화 메커니즘 제공

파일 시스템

  • 데이터를 효율적으로 저장, 관리하기 위한 구조적 방식

소켓

  • 네트워크를 통해 프로세스 간 통신을 지원하는 인터페이스
저작자표시 비영리 동일조건 (새창열림)

'CS > OS' 카테고리의 다른 글

[운영체제] 프로세스 관리  (0) 2025.01.28
[운영체제] 프로세스  (0) 2025.01.28
[운영체제] 메모리  (0) 2025.01.28
[운영체제] virtual box에서 ubuntu 설치 및 터미널 명령어 실행하기  (0) 2023.07.09
운영체제 - 생산자 소비자 문제 semaphore을 활용하여 해결하기  (0) 2023.05.31
'CS/OS' 카테고리의 다른 글
  • [운영체제] 프로세스 관리
  • [운영체제] 프로세스
  • [운영체제] 메모리
  • [운영체제] virtual box에서 ubuntu 설치 및 터미널 명령어 실행하기
abyss-s
abyss-s
프론트엔드 개발합니다!
  • abyss-s
    abyss-s의 블로그입니다.
    abyss-s
  • 전체
    오늘
    어제
    • 분류 전체보기 (192) N
      • Web (16)
        • JavaScript (6)
        • TypeScript (1)
        • React (5)
        • Vue (0)
        • Storybook (1)
        • Next.js (1)
      • Backend & Infra (8)
        • Database (3)
        • Node.js (2)
        • SpringBoot (1)
      • PS (71)
      • CS (30)
        • OS (13)
        • Structure & Algorithm (5)
        • Network (10)
        • 정보처리기사 (2)
      • Language (18)
        • OOP (1)
        • JAVA (13)
        • C++ (4)
      • Activities (16) N
        • 멋쟁이 사자처럼 (2)
        • OSSCA (3)
        • LG U+ URECA (5)
        • Project (2)
        • Conference (1) N
      • IT (3)
      • AI (0)
      • Git & Github (5)
      • Notion (1)
      • Statistics (11)
      • Book (5)
      • Diary (1)
      • Game (1)
  • 블로그 메뉴

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

    • 깃허브
    • 백준
    • 트위터
  • 공지사항

    • abyss-s의 티스토리에 오신 것을 환영합니다.
  • 인기 글

  • 태그

    운영체제
    C++
    JavaScript
    github
    통계학
    생활코딩
    Python
    DP
    BAEKJOON
    네트워크
    코드트리
    백준
    React
    파이썬
    그리디
    Java
    BFS
    OS
    자바스크립트
    자바기반응용프로그래밍
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
abyss-s
[운영체제] 오퍼레이팅 시스템 개요
상단으로

티스토리툴바