티스토리 뷰

💡 운영체제 개념

운영체제 (OS ; Operating System)

  • 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
  • 다중 사용자와 다중 응용 프로그램 환경 하에서 자원의 현재 상태를 파악하고, 자원 분배를 위한 스케줄링 담당
    • CPU, 메모리 공간, 기억장치, I/O 장치 등 자원 관리
    • I/O 장치, 사용자 프로그램 제어

운영체제의 목적

  • (1) 처리 능력 (Throughput) : 일정 시간 내에 시스템이 처리하는 일의 양
  • (2) 반환 시간 (Turn Around Time) : 시스템에 작업 의뢰한 시간 ~ 처리 완료 시간
  • (3) 사용 가능도 (Availability) : 시스템 사용할 필요가 있을 때, 즉시 사용 가능한 정도
  • (4) 신뢰도 (Reliability) : 시스템이 주어진 문제를 정확히 해결하는 정도

 

 

💡 운영체제 종류

1) Windows

: 90년대 Microsoft 사가 개발

  • 특징
    • 그래픽 사용자 인터페이스(GUI)
    • 선점형 멀티태스킹
    • PnP (Plug and Play, 자동 감지 기능)
    • OLE (Object Linking and Embedding, 개체 연결 및 삽입)
    • 255자의 긴 파일명
    • Single-User 시스템

2) Unix

: 60년대 AT&T 벨 연구소, MIT, General Electric 공동 개발

  • 특징
    • 시분할 시스템을 위해 설계된 대화형 OS
    • 소스 공개된 개방형 시스템
    • 대부분 C 언어 작성으로 이식성 & 프로세스 간 호환성 높음
    • 다중 사용자, 다중 작업 지원
    • 트리 구조의 파일 시스템
  • 시스템 구성1) 커널 (Kernel) : HW 보호, 프로그램-HW 간 인터페이스 역할2) 쉘 (Shell) : 명령어 인식 후 프로그램 호출하여 명령 수행하는 명령어 해석기, 프로그램-사용자 간 인터페이스3) 유틸리티 프로그램 : ex) 에디터, 컴파일러, 인터프리터, 디버거 등

3) Linux

: 91년 리누스 토발즈가 UNIX 기반 개발

  • 특징
    • 프로그램 소스 코드가 무료 공개 (Open source)
    • 다양한 플랫폼 설치, 사용, 재배포 OK
    • UNIX와 완벽 호환

4) MacOS

: 80년대 Apple 사가 UNIX 기반으로 개발

  • 특징
    • 애플 사에서 생산하는 제품에서만 사용 가능
    • 드라이버 설치 및 install, uninstall 과정 단순

5) Android

: Google 사가 개발한 리눅스 커널 기반 개방형 모바일 OS

  • 오픈 소스 / Java, Kotlin 기반 앱 작성 / 휴대폰 장치 사용

6) ios

: Apple 사가 개발한 UNIX 기반 모바일 OS

  • 애플 사 고유의 모바일 OS

 

 

💡 기억장치 관리 전략 (메모리 관리 기법)

보조기억장치의 프로그램 및 데이터를 주기억장치에 적재시키는 시기와 위치를 지정하여

한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것

1. 반입 (Fetch) 전략

: 보조기억장치에 보관 중인 프로그램/데이터를 언제 주기억장치로 적재할 것인지 결정 (When)

  • 요구 반입 (Demand) : 실행 중인 프로그램이 특정 프로그램/데이터의 참조를 요구할 때 적재
  • 예상 반입 (Anticipatory) : 실쟁 중인 프로그램에 의해 참조될 프로그램/데이터를 미리 예상하여 적재

2. 배치 (Placement) 전략

: 새로 반입되는 프로그램/데이터를 주기억장치의 어디에 위치시킬 것인지 결정 (where)

  • 최초 적합 (First Fit) : 들어갈 수 있는 크기의 빈 영역 중 첫 번째 분할 영역에 배치
  • 최적 적합 (Best Fit) : 들어갈 수 있는 크기의 빈 영역 중 단편화를 가장 적게 남기는 분할 영역에 배치
  • 최악 적합 (Worst Fit) : 들어갈 수 있는 크기의 빈 영역 중 단편화를 가장 많이 남기는 분할 영역에 배치

3. 교체 (Replacement) 전략

: 주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램/데이터를 주기억장치에 배치하려 할 때,

이미 사용되고 있는 영역 중 어느 영역을 교체해서 사용할 것인지 결정 (Who)

  • FIFO (First IN First Out) - 가장 먼저 들어와 가장 오래 있던
  • LRU (Least Recently Used) - 가장 오랫동안 사용되지 않은
  • LFU (Least Frequently Used) - 가장 참조 횟수가 적은
  • OPT (Optimal Replacement) - 앞으로 가장 오랫동안 사용하지 않을 / 최적 교체
  • NUR (Not Used Recently) - 최근에 사용하지 않은 (참조/변형 2개 비트 필요, LRU의 오버헤드 감소)
  • SCR (Second Chance Replacement) - 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 것의 교체를 방지 (FIFO 단점 보완) / 2차 기회 교체

ex) LRU 알고리즘

4. 할당 전략

: 실행해야 할 프로세스를 주기억장치에 어떤 방법으로 할당할 것인지 결정 (how)

가상기억장치 (Virtual Memory)

  • 보조기억장치 일부를 주기억장치처럼 사용하는 것
  • 일반적인 구현 방법은 블록 종류에 따라 페이징, 세그먼테이션 기법으로 분류 가능 (크기 동일 여부)
  • 기타 관리 사항
    • 페이지 크기 작을수록 갯수 ↑, 클수록 갯수 ↓
    • Locality : 프로세스 실행 동안 주기억장치 참조 시 일부 페이지만 집중적으로 참조하는 성질
      • 시간 구역성 / 공간 구역성
    • 워킹 셋 (Working Set) : 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
    • 스래싱 (Thrashing) : 프로세스의 처리 시간 < 페이지 교체 소요 시간

1) 페이징 (Paging)

  • 내부 단편화 발생 가능
  • 가상기억장치 내 프로세스를 일정하게 분할하여 주기억장치의 분산된 공간에 적재 후 프로세스 수행
    • 페이지 (Page) : 프로그램을 일정한 크기로 나눈 단위
    • 페이지 프레임 (Page Frame) : 페이지 크기로 일정히 나누어진 주기억장치의 단위

2) 세그먼테이션 (Segmentation)

  • 외부 단편화 발생 가능
  • 가상기억장치 내 프로세스를 가변 크기의 블록으로 나누고 메모리 할당
    • 세그먼트 (Segment) : 프로그램을 배열,함수 등 논리적인 크기로 나눈 단위
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함