[OS] 운영체제란?

didio·2023년 2월 27일
0

OS

목록 보기
1/4

운영체제란?

  • 사용자 및 다른 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층이다.

운영체제의 목적은?

  • 컴퓨터 시스템의 자원을 효율적으로 관리한다.
    • 컴퓨터의 하드웨어에는 주어진 정해진 자원이 있다. 주어진 자원을 운영체제가 효율적으로 사용 할 수 있게 한다. → 최대의 성능을 내도록 한다.
    • 사용자에게 자원을 형평성있게 분배해준다.
    • 소프트웨어 자원도 관리한다. :) 프로세스,파일,메세지등
  • 사용자가 컴퓨터를 편리하게 사용할 수 있는 환경을 제공해준다.
    • 운영체제는 동시에 실행하는 사용자와 프로그램들이 독자적 컴퓨터에서 수행되는 것 같은 느낌을 준다.

운영체제의 분류

  • 동시 작업 가능 여부
    • 단일 작업만을 지원하는 운영체제 (single tasking)
    • 다중 작업을 지원 하는 운영체제 (mutil tasking)
      • 현재는 다중 작업이 가능한 운영체제를 사용한다.
      • 한 명령이 끝나기 전에 다른 명령이나 프로그램을 수행 할 수 있다.
      • unix,ms windows등
  • 사용자의 수
    • 단일 사용자만 지원하는 운영체제
      • ms-dos
    • 다중 사용자를 지원하는 운영체제
      • 여러 사용자가 단일 컴퓨터를 동시에 사용 할 수 있는가
      • 계정을 여러 개 만들어서 동시에 수행 할 수 있는가
      • unix, NT server
  • 처리 방식
    • 일괄 처리 (batch processing)
      • 작업 요청의 일정량을 모아서 한꺼번에 처리한다.
      • 작업이 완전히 종료 될 때까지 기다려야한다.
      • 현대 운영체제에서는 잘 보이지 않는다.
    • 시분할 (time sharing)
      • 여러 작업을 수행할때 컴퓨터 처리능력을 일정한 시간 단위로 분할하여 사용한다.
      • 짧은 응답 시간
      • interactive하다. 사용자가 요청한 결과가 바로 나타난다.
      • 현재 일반적인 운영체제 처리 방식
    • 실시간 (realtime os)
      • 정해진 시간 안에 어떤 일이 반드시 종료되어 보장되어야 함

        용어

      • Multiprogramming : 여러 프로그램이 메모리에 올라가 있음을 강조한다.

      • Time sharing: cpu의 시간을 분할하여 나누어 쓴다.

      • Multiprocessor : 하나의 컴퓨터에 CPU가 여러 개 붙어 있음을 의미함

운영체제의 예

  • 유닉스
    • 코드 대부분을 c언어로 작성함
    • 최소한의 커널구조를 사용하여 확장성이 좋다.
    • 리눅스 : 소스코드가 공개되어있어 누구나 리눅스 운영체제를 사용 할 수 있다.
  • MS Windows
    • ms사의 다중 작업용 GUI 기반 운영체제

운영 체제의 구조

cpu스케줄링 : 누구에게 cpu를 줄까?

cpu를 한 프로그램이 점유한다면 다른 프로그램은 일을 하지 못한다. 이런 비효율적인 상황을 줄이기 위해서 cpu를 한 프로그램이 점유하지 않고 이런 빠른 자원을 짧은 시간 간격으로 주고 받고 하는 작업이다.

메모리 관리 : 한정된 메모리를 어떻게 쪼개어 쓸까?

메모리를 나누는게 중요하다 너무 많은 프로그램이 있다면 아주 적은 메모리를 가지게 되는데 이 경우에 프로그램이 잘 돌아가지 않는다. 이럴경우 메모리에 적당한 양의 프로그램을 올리는 메모리 관리법이 있다.

메모리가 꽉 찼을 때 다시 사용할 수도 있는 것을 예측하여 다시 사용 할 가능성이 큰 데이터를 메모리에서 쫒아내지않고, 만약 사용할 가능성이 적다면 메모리에서 쫓아내는 메모리 관리법이 있다.

파일관리 : Disk파일을 어떻게 보관할까? 디스크 스케줄링이 있다. 디스크 스케줄링은 헤드의 움직임으로 이루어지기 때문에 디스크의 헤드 이동을 줄이는 방법을 사용한다. 순서대로 처리가 아닌 가까운 순서로 작동을 한다. 효율적인 처리가 가능하다.

입출력 관리 : 각기 다른 입출력 장치와 컴퓨터간에 어떻게 정보를 주고 받을까?

프로세스 관리 : 프로세스의 생성 삭제 관리

profile
🌈프론트엔드 공부 기록

0개의 댓글