[운영체제] 컴퓨터 시스템의 구조 1

ryun·2023년 3월 15일
0

운영체제

목록 보기
3/17

운영체제

  • 좁은 의미
    • 커널
      운영체제 가장 핵심적 부분
      항상 메모리에 상주하는 부분
  • 넓은 의미
    • 각종 주변 시스템 유틸리티를 포함한 개념
      메모리에 상주하는 부분은 아니다
      일종의 독립적 실행파일

자원관리에서 가장 중요한 것은 최대 성능을 내는 효율성
하지만 지나치게 차별을 주는 것은 안된다

컴퓨터의 두뇌는 사실 운영체제
CPU는 기계어를 빠르게 실행하는 역할, 판단은 못함
운영체제는 전체적 관리, 판단, 두뇌(통치자) 역할

운영 체제 목적

  • 자원을 효율적으로 관리!
    • 프로세서, 입출력 장치 등
    • 사용자 및 운영체제 자신의 보호
    • 프로세스, 파일, 메시지 등 관리

프로그램마다 메모리를 조금씩 나눠줘야 한다
프로그램 100개 돌아가면 공평히 다 나눠도 어느 누구도 만족 못함
그래서 메모리 관리에서 동시 실행 상황에서 공평히 나눠주는게 아니라,
특정 프로그램 많이 주고 쫓겨나게 할 수도 있다.
충분히 쓰면 I/O를 하러 떠나고 그 다음것이 공간을 차지한다
이렇게 몰아주는게 훨씬 효율적일 수 있다

운영 체제의 분류

  • 동시 작업 가능 여부
    현대 운영체제는 멀티태스킹 가능
    초창기에는 단일 작업만 가능했다
    끝내기 전에 시작조차 못시켰음

    • 단일 작업
      한 번에 하나의 작업만 처리
    • 다중 작업
      동시에 두 개 이상의 작업 처리 (메모리 관리, CPU관리가 필요한 이유)
  • 사용자의 수

    • 단일 사용자
      기본적으로 스마트폰, PC
    • 다중 사용자
      리눅스 (클라우드 서버에 설치되어있음)
      여러 사용자가 동시 접속해서 사용하는 것 (두명 앉아서 쓰는 것 아님)
      다중 사용자용 운영체제는 조금 더 복잡하다
      (다른 사람이 파일 보면 안됨, 메모리 공간 보면 안됨, 이런 제약조건)
  • 처리 방식

    • 일괄 처리(batch processing)
      키보드 누르면 바로 화면에 결과가 나오는 것은 일괄처리 아님
      작업 요청의 일정량을 모아서 한꺼번에 처리
      작업 종료까지 기다려야 한다
      적재 > 처리 > 종료 후 출력

    • 시분할(time sharing)여러 작업 수행할 때, 처리 능력을 일정한 시간 단위로 분할해서 사용
      키보드 입력하면 결과가 바로 나옴 (지연 없음) > 무척 인터랙티브하다
      범용 운영체제는 시분할 시스템이다
      *현 수업에서 이야기 하는 것은 다중 사용자 운영체제와 시분할 하는 운영체제 (자원 효율적, 여럿이 행복하자)

    • 실시간(Realtime OS)
      정해진 시간 안에 어떤 일의 종료가 보장되어야 한다 > 데드라인이 있다
      일반적인 운영체제가 아니다
      시간을 어기면 치명적 결과 초래

      Hard realtime system (경성 실시간 시스템) : 원자로/공장 제어, 미사일 제어 등
      Soft realtime system (시스템 연성 실시간 시스템) : 동영상

용어

  • 멀티태스킹
    프로그램 여러 개를 동시에 돌리는 것
  • 멀티프로그래밍 (메모리 측면 강조)
    메모리에 여러 프로그램이 동시에 올라와 있는 것
  • 타임 쉐어링 (CPU를 강조)
    짧은 시간 간격으로 나눠서 사용
  • 멀티 프로세스

위는 모두 컴퓨터 안에서 여러 프로그램을 실행시킬 수 있다는 뜻
아래 하나는 다른 용어

  • 멀티 프로세서
    하나의 컴퓨터에 CPU가 여러 개 붙어 있음을 의미
    동시에 여러 프로그램이 서로 다른 CPU에서 일을 할 수 있지만 굉장히 복잡
    서로 충돌

운영체제의 예

유닉스

리눅스보다 먼저 나온 리눅스 계열 운영체제
큰 서버를 위해 만들어졌다
여러 프로그램, 여러 사용자 관리하기 때문에 굉장히 복잡

기존 운영체제와의 차이

  • 어셈블리와 다르게 C언어로 만들었기 때문에 사람 이해가 편리, 수정도 편리
  • 최소한의 커널로 굉장히 효율적
  • 시스템이 커지면 확장도 용이하게 한다
    유닉스 계열이 초창기에 서버 대형컴퓨터를 위해 동시 실행 위해 만들어졌다

반면, 마소가 만든 운영체제는 개인 사용자를 위해 만든 운영체제

  • 단일 프로그램만 실행이 가능하다
  • 비교적 간단하다
    점점 발전해서 마소 윈도우즈 95, 98로 점점 업그레이드
    지금은 예전만큼 불안정성 하지는 않다 (유닉스는 365일 절대 죽지 않음)

확장을 위해 만들어진 것과 단일작업 운영체제에서 점점 발전해온 것

운영 체제의 구조

운영체제를 이해할 때는 내가 운영체제인 것처럼 운영체제 개발자 관점으로 보아야 한다

0개의 댓글