운영체제 정리

hyeon·2022년 12월 29일
0

Computer Science

목록 보기
4/6

운영체제 : 프로세스와 스레드를 중심으로


얼레벌레 운영체제 마인드맵

운영체제란?

컴퓨터의 전반적인 운영을 제어하는 소프트웨어

사용자가 파일을 저장하거나 불러올 수 있는 수단을 제공하며 사용자가 프로그램실행을 요청할 때 사용할 수 있는 인터페이스를 제공하고 요청된 프로그램을 실행하기 위한 환경을 제공한다.

운영체제 구성요소

UI(사용자 인터페이스) :

ex)Shell 최근에는 GUI (Graphic UI)를 사용한다.

Kernel(커널) :

컴퓨터가 필요로하는 가장 기본적인 기능을 수행하는 소프트웨어 요소들을 포함함

1. 파일 관리자 : 운영체제 외의 다른 프로그램의 파일 접근은 파일 관리자의 감독을 받는다.
2. 장치 관리자 : 주변장치의 제어가와 통신하거나 직접통신하는 프로그램
3. 메모리 관리자 : 주기억장치 사용을 관장함. 멀티 사용자, 멀티 태스킹 환경에서는 동시에 여러 요구에 답해야한다. 동시에 여러 프로그램과 데이터 블록이 메모리를 차지하게 되면서 메모리 관리자는 메모리 공간을 찾아 할당해야 하며, 각 프로그램의 활동이 그 프로그램에 할당된 공간 내에서 이루어지도록 책임져야한다. 더이상 이용되지 않는 메모리 영역을 추적하고 있어야한다.
Q : 요청된 주기억 장치의 크기가 실제 컴퓨터에서 사용가능한 공간을 초과할 경우 ?
A : 프로그램과 데이터를 주기억장치와 대용량 저장장치 사이를 오가며 옮기는 기법을 사용함 = 페이징 기법
페이징에 의해 만들어진 가상적인 큰 기억공간을 가상메모리라고 부른다.
4. 일정 관리자 : 어느 작업을 실행시켜야할지를 결정
5. 실행 관리자 : 작업에 대한 시간 할당을 관장함

운영체제의 시동

부팅(부트 스트래핑)

개념 : 전원을 켤때마다 대용량 저장장치에 영구적으로 저장되어있는 운영체제를 전원이 켜질 때 비어있는 상태의 주기억장치로 옮기는 작업

원리 :CPU에 전원이 들어올때마다 프로그램 카운터는 특정주소(실행될 프로그램의 시작 위치)를 가리키도록 설계되어있음. 주기억장치가 휘발성이기 때문에 주기억장치의 작은 부분에 특별한 비휘발성 메모리 셀을 사용한다. = ROM(Read Only Memory) 읽을수만 있고 변경할 수는 없음
ROM에는 부트스트랩이 영구적으로 저장되어있다. 부트스트랩은 컴퓨터가 켜질때 자동으로 실행되고 CPU로 하여금 대용량 저장장치의 특정 위치에 저장된 운영체제를 주기억 장치의 휘발성 영역으로 옮긴다.

Q : ROM에 전체 운영체제를 저장하지 않는 이유
A : 현재 기술로는 큰용량의 비휘발성 메모리를 주기억장치에 두는 것이 비효율적이기 때문 그리고 잦은 업데이트 때문에 펌웨어 업데이트 보다는 대용량 저장장치에 운영체제를 저장한다.

프로세스

  • 개념 : 운영체제 제어하에서 프로그램을 실행시키는 활동

컴퓨터에서는 실행중인 여러 프로세스들이 컴퓨터 자원을 이용하기 위해 경쟁하게 된다.
각 프로세스들이 주변장치, 주기억장치의 공간, 파일에 대한 접근, CPU에 대한 접근 등의 필요한 자원을 얻는 등 프로세스를 관리하는 것이 운영체제의 역할이다.

  • 프로세스 상태 : 프로그램의 현재 실행위치, CPU레지스터 및 관련 메모리 셀들의 값이 포함됨. 프로세스가 실행되는 동안 그때그때 다름

프로세스 관리

프로세스의 실행을 조정하는 것이 커널의 일정관리자와 실행관리자이다.

  • 일정 관리자 : 프로세스들에 대한 기록을 관리하고, 새로운 프로세스들을 여기에 추가하거나 완료된 프로세스는 지운다. 사용자가 응용 프로그램의 실행을 요청할 때 현재 프로세스들의 집합에 요청된 응용프로그램의 실행을 추가한다.

    • 일정관리자는 주기억장치 안에 프로세스 테이블을 만들어 모든 프로세스들을 추적한다. 프로그램의 실행이 요청되면 프로세스 테이블 안에 해당 프로세스를 위한 새로운 항목을 생성한다. 이 항목안에는 프로세스에 할당된 메모리 영역, 프로세스의 우선순위, 프로세스가 준비상태인지 대기 상태인지 등에 관한 정보가 포함된다.
    • 프로세스가 계속 진행 될 수 있으면 준비상태이고 외부이벤트가 진행 될때까지 진행이 연기되어있으면 대기상태이다.
  • 실행 관리자 : 일정이 잡혀있는 프로세스들의 실행을 감독한다. 시간을 할당시간이라고 불리는 구간으로 나눈다음 각 프로세스가 할당시간을 초과하지 않도록 프로세스들 사이에서 CPU를 전환시켜준다.

프로세스 간의 경쟁에 대한 처리

  • 세마포어
  • 데드락

스레드

프로세스 내에서 실행되는 여러 흐름의 단위
프로세스가 할당받은 자원을 이용하는 실행의 단위

  • 스레드는 프로세스 내에서 Stack 영역만 따로 할당받고 code,data, heap 영역은 공유한다.
  • 프로세스 내의 주소공간이나 자원들을 같은 프로세스 내의 스레드끼리 공유하면서 실행된다.

멀티 프로세스 대신 멀티 스레드를 사용하는 이유

  1. 자원 효율성 증대
  • 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어들어 자원을 효율적으로 쓸수있다.
  1. 처리 비용 감소 및 응답시간 단축
  • 프로세스 통신보다 스레드 간 통신의 비용이 적음 그리고 속도가 빠름
profile
남기고 싶은 개발자입니다 :>

0개의 댓글