프로세스

leekoby·2023년 3월 27일
0

운영체제

목록 보기
2/7
post-thumbnail

🔧변경내용🔨

제목날짜내용
발행일23.03.27

📌들어가기에 앞서

해당 포스트는 프로세스에 대해 학습한 내용을 정리하며 기록한 것입니다.




프로세스

프로세스 :

  • 프로그램이 실행 중인 상태로 특정 메모리 공간에 프로그램의 코드가 적재되고 CPU 가 해당 명령어를 하나씩 수행하고 있는 상태

  • 운영 체제에서는 실행 중인 하나의 애플리케이션을 프로세스라고 부른다.

사용자가 애플리케이션을 실행하면, 운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션의 코드를 실행.

이때 실행되는 애플리케이션을 프로세스라고 부른다.

예를 들어 Chrome 브라우저를 두 개 실행하면, 두 개의 프로세스가 생성된다.

이렇게 하나의 애플리케이션은 여러 프로세스(다중 프로세스)를 만들기도 한다.

[그림] 사진에서 확인할 수 있는 항목 하나하나가 전부 프로세스다.




프로세스 구성 요소

프로세스의 구조체에는

  • 유저 메모리 영역 : 프로세스마다 독립적으로 관리
  • 핸들 테이블 : 프로세스가 사용하는 각종 객체들의 포인터를 관리
  1. 유저 메모리 영역 관리(Virtual Address Descriptors)

    • 프로세스 별로 독립된 영역을 가지게 되는 곳은 유저 메모리 공간

    • 커널 메모리 공간의 경우 모든 프로세스가 공유하여 사용

    • 프로세스 별로 독립적인 유저 메모리 영역을 관리하기 위해서 VAD(Virtual Address Descriptors)라는 관리 테이블이 있다.

  2. 핸들 테이블(Handle Table)

    • 프로세스에서 사용하는 모든 핸들에 대한 커널 객체 포인터 정보를 배열 형태로 가지고 있는 공간
    • 프로세스가 종료하게 될 때 이 테이블의 정보를 참고하여 이 프로세서에서 사용하고 있는 모든 커널 객체를 자동으로 반환
  3. 독립적인 메모리 공간

    • 프로세스 단위로 관리되는 자원 중 가장 중요한 구별점은 가상 메모리

    • 페이징 기법을 이용하여 프로세스마다 별도의 고유한 메모리를 사용할 수 있게 하고 있다(윈도우의 경우).




프로세스 특징

프로세스의 특징으로는 자원 소유의 단위와 디스패칭의 단위가 있다.

  • 자원 소유의 단위

    • 각각의 프로세스는 자신의 실행 이미지 로드와 실행에 필요한 추가적인 메모리 공간을 가지고 있어야 한다.

    • 이것은 각 프로세스마다 구별되어야 하며 해당 프로세스가 접근하고자 하는 파일, I/O 장치들에 대해서 또한 프로세서 단위로 할당 받아 관리되어야 한다.

  • 디스패칭의 단위

    • 프로세스는 하나의 프로그램이 운영체제로부터 CPU 의 자원을 일정 기간 동안 할당 받아 명령어를 실행하는 것

    • 운영체제는 여러 개의 프로세스가 병렬적으로 실행되게 하기 위해서 CPU 의 사용 시간을 각각의 프로세스에 골고루 나누어 주어야 한다.

    • 하나의 프로세스에서 여러 개의 디스패칭 단위가 실행될 수 있도록 하고 있으며, 이러한 디스패칭 단위를 스레드라고 한다.




프로세스 상태

  • 실행(Run) : 프로세스가 프로세서를 차지하여 서비스를 받고 있는 상태

  • 준비(Ready) : 실행될 수 있도록 준비되는 상태

  • 대기(Waiting) : CPU 의 사용이 아니라 입출력의 사건을 기다리는 상태




프로세서 VS 프로세스

프로세서와 프로세스는 엄밀히 다르다.

프로세서(Processor)

프로세서는 하드웨어적인 측면과 소프트웨어적인 측면으로 나누어 볼 수 있다.

  • 하드웨어적인 측면 :

    • 컴퓨터 내에서 프로그램을 수행하는 하드웨어 유닛

    • 중앙처리장치(CPU)를 의미하며 적어도 하나 이상의 ALU와 레지스터를 내장

  • 소프트웨어적인 측면 :

    • 데이터 포맷을 변환하는 역할을 수행하는 데이터 처리 시스템

    • 워드프로세서나 컴파일러 등


프로세스(Process)

프로세스는 특정 목적을 수행하기 위해 나열된 작업의 목록

메모리에 적재 되어 프로세서에 의해 실행 중인 프로그램을 프로세스라고 볼 수 있다.




📚 레퍼런스

코드스테이츠 수업자료

0개의 댓글