1. 운영 체제 개요

yongseok·2023년 1월 7일
0

[CS]OperatingSystem

목록 보기
1/1

부각코 CS스터디(운영체제) 결과를 기록으로 남기는 포스팅입니다.

운영체제(소프트웨어) 이해

  • 시대가 흘러도 변하지 않는 컴퓨터의 원리 및 철학 중 핵심기술
  • 내가 운영체제라고 생각하기
    • 내가 하드웨어를 어떻게 관리할까?
    • 어떻게 하면 사용자가 편하게 사용할 수 있을까?

운영 체제의 정의

  • 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
  • 광의: 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념
  • 협의: 커널을 의미

커널(kernel)

  • 메모리에 상주하며 응용프로그램과 하드웨어 수준 사이의 가교 역할
  • 모놀리식 커널: OS의 주요 구성요소를 모두 하나의 메모리 공간을 통해 제공, 모든 기능을 제공하고 있는 형태.
  • 마이크로 커널: 최소한의 기능만 커널이 제공하고 그 외 기능은 커널 밖에서 제공한다. 커널 자체가 작아지기 때문에 더 심플

시스템 콜 인터페이스

  • 프로세스나 스레드로부터 명령을 받는 인터페이스(키보드나 마우스 입력은 끼어들기러 처리된다.
  • 디스크 액세스, 네트워크 요청 등

프로세스 관리

  • 가동되고 있는 프로세스 관리와 CPU 이용 우선순위 등을 ‘스케줄’한다.
  • 언제, 어떤 프로세스가 어느정도의 cpu코어를 이용할 수 있는지, 처리 우선순위를 어떻게 결정할 것인지 등을 관리하는 것이 역할

메모리 관리

  • 서버상의 메모리를 단위크기의 블록으로 분할해서 프로세스에 할당
  • 물리 메모리 공간의 최대치를 고려
  • 프로세스가 이용하는 독립 메모리 공간을 확보하거나 상호 간의 참조 영역을 지키기 위해 독립성을 관리하는 등의 메모리 관리 역할

네트워크 스택

  • 네트워크를 관리

파일 시스템 관리

  • 파일 시스템을 관리
  • 파일 시스템용 인터페이스를 제공
  • 물리 디스크에 제공된 데이터를 관리하는 기능
  • 디렉터리 구조 제공, 액세스 관리, 고속화, 안정성 향상 등

장치 드라이버

  • 디스크, NIC, HBA 등의 물리 장치와 작업
  • 커널은 장치 드라이버를 이용해 그 아래에 있는 물리장치를 은폐

운영 체제의 기능

컴퓨터 시스템 운영

  • 자원관리: 프로세서, 기억장치, 입출력 장치관리(효율성, 형평성)
  • 응용프로그램들의 실행을 도와줌

사용자 지원

  • 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공
  • 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 전담

운영 체제의 분류

  • 동시 작업 가능 여부
    • 단일작업 → 한 번에 하나의 작업만 처리
    • 다중작업 → 동시에 두 개 이상의 작업 처리
  • 사용자의 수(여러 사용자가 동시에 접속 가능한가?/계정생성관련)
    • 단일사용자
    • 다중사용자
  • 처리 방식
    • 일괄처리(batch processing): 작업 요청을 일정량 모아서 한번에 처리, 작업 완전 종료까지 기다려야 함.
    • 시분할(time sharing)→대화형(interactive): CPU작업 시간을여러 프로그램이 조금씩 나누어 쓰는 시스템, 짧은 응답시간
    • 실시간(real-time): 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장 되어야 하는 실시간 시스템
      • 경성 실시간 시스템: 주어진 시간을 지키지 못할 경우 매우 위험한 결과를 초래할 가능성이 있는 시스템
      • 연성 실시간 시스템: 데이터가 시간을 맞추어 전달되어야 올바른 기능을 수행할 수 있는 시스템(위험한 결과를 초래하지는 않는다)

컴퓨터에서 여러 작업을 동시에 수행하는 것을 뜻하는 용어

  • 다중작업 Multitasking
  • 다중 프로그래밍 Multi-programming: 여러 프로그램이 메모리에 올라기 있음을 강조
  • 시분할 Time sharing: CPU의 시간을 분할하여 나누어 쓴다는 의미
  • 다충 처리 Multi-process

운영 체제의 자원 관리 기능

  • 프로세스 관리자 → CPU: 컴퓨터를 통제하고 주어진 작업을 수행하는 장치
    • [CPU 스케줄링]어떤 v프로세스에 CPU를 할당할 것인가?
    • 프로세스를 생성, 삭제, CPU 할당을 위한 스케줄 결정, 프로세스 상태관리
  • 메모리 관리자 → Memory: 컴퓨터의 작업에 사용되는 데이터를 일시적 또는 영구적으로 저장하는 장치
    • [메모리 관리]한정된 메모리를 어떻게 나눠쓸 것인가?
    • 메모리 공간에 대한 요구의 유효성 체크, 할당 및 회수, 공간 보호
  • 파일 관리자 → Disk
    • [파일관리]디스크에 파일을 어떻게 보관하지?
    • 컴퓨터 시스템의 모든 파일을 관리, 접근 제한, 자원 할당 및 회수
  • 장치 관리자 → I/O device: 컴퓨터에 신호와 정보를 보내는 입력장치와 컴퓨터의 연산을 결과로 내보내는 출력 장치
    • [입출력관리]각기 다른 입출력 장치와 컴퓨터 간에 어떻게 정보를 주고 받게 하지?
    • 컴퓨터 시스템의 모든 장치를 관리, 시스템의 장치를 할당, 작동 시작, 반환
  • 그외
    • 보호 시스템
    • 네트워킹
    • 명령어해석기

0개의 댓글