티스토리 뷰

TIL

[OS] 운영체제와 프로세스

sayho 2022. 2. 2. 15:27
운영체제

  사용자에게 효율적이고 편리한 환경을 제공하는 것이 운영체제의 가장 큰 목표이다. 운영체제는 처리

  능력이 빨라야 하고, 신뢰도가 높아야하며 응답시간이 빠른 환경을 제공할 수 있어야한다.

  • 처리 능력 : 단위 시간당 사용자의 요청을 얼마나 빠르게 처리할 수 있는 능력이다.
  • 신뢰도 : 하드웨어와 소프트웨어가 실패없이 사용자의 요청을 처리할 수 있는 능력이다. 
  • 응답 시간 : 사용자가 요청을 한 뒤 응답이 도착할 때 까지의 시간
프로그램 vs 프로세스
  • 프로그램 : 파일시스템에 저장되어있는 실행 파일을 프로그램이라고 한다. 
  • 프로세스 : 프로그램이 실행되어 메모리에 할당된 상태를 프로세스라고 한다. 하나의 컴퓨터에서는 여러 프로세스가실행되기 때문에 운영체제는 프로세스를 효율적으로 관리해야한다.
프로세스 구조
  • Text : 컴파일된 소스 코드가 저장됨
  • Data : 전역/정적 변수, 배열 등 초기화된 데이터가 저장됨
  • Heap : 동적 할당받은 데이터가 저장됨
  • Stack : 함수 호출, 지역 변수와 같은 임시 데이터가 저장됨
  • 프로세스 제어 블록(PCB)
프로세스 제어 블록 (PCB : Process Control Block)

  프로세스마다 하나의 프로세스 제어 블록을 가지고 있다. 운영체제의 스케줄러는 프로세스 제어 블록을 이용하여

  프로세스 스케줄링을 한다. 프로세스 제어 블록은 다음과 같은 정보를 가지고 있다. 프로세스가 종료하게 되면

  PCB도 메모리에서 함께 제거된다. 

 

  • 식별자 : 각 프로세스의 고유 식별자
  • 상태 : 생성, 준비, 실행, 대기, 보류준비, 보류대기 등 프로세스의 상태 표시
  • 우선순위 : 우선순위가 높은 프로세스가 먼저 실행되고 더 자주 실행된다
  • 프로그램 카운터 : 다음에 실행될 명령어의 위치
  • 포인터 : 프로세스의 현재 위치를 저장
  • 레지스터 정보 : 이전에 사용했던 레지스터의 값
  • 입출력 상태 정보 : 프로세스에 할당된 입출력 장치, 파일 목록 등
  • 계정 정보 : CPU 사용 시간, 실제 사용 시간, 사용 상한 시간, 계정 번호, 작업이나 프로세스 번호 등
  • 쓰레드 정보
프로세스 문맥 교환 (Context Switching)

  CPU의 제어권을 현재 실행되고 있는 프로세스에서 다른 프로세스로 넘겨주는 것을 프로세스 문맥 교환이라고 한다.

  이전의 프로세스의 상태를 PCB에 보관하고 실행될 프로세스의 PCB 정보를 읽어 레지스터에 적재하는 과정이다.

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
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
글 보관함