티스토리 뷰

운영체제

운영체제, 프로세스

란텔 2025. 10. 22. 17:40

1. [운영체제 란?]

 
프로그램 실행에 필요한 요소를 시스템자원(CPU, 메모리, 기억장치 등) 이라한다.
 
프로그램 실행에 필요한 시스템자원 을 할당하고, 프로그램이 올바르게 작동하도록 돕는것이 운영체제⁠다.
 
프로그램을 실행할 때는 메모리(RAM)에 적재되어 실행되는데 
운영체제메모리(RAM)커널영역이라는 공간에 따로 적재되어 실행된다.
  • 운영체제는 실행할 프로그램을 메모리에 올리는 작업과 더 이상 실행되지 않는 프로그램을 메모리에서 삭제하며 지속적으로 메모리(RAM)의 자원을 관리
그 외의 프로그램은 메모리의 사용자 영역에서 적재되어 실행된다.
 

운영체제는 응용프로그램들이 시스템자원에 접근(응용프로그램이 hdd,ssd저장공간에 저장하려 할 때, 프린터를 출력 하려할 때 등)하려고 할 때 운영체제 자신을 통해서만 접근하도록 한다.
 
이러한 자원에 대한 접근을 이중모드로 컨트롤 한다.
이중모드에는 다음 두 가지가 있다.
    • 사용자 모드 : 사용자 영역의 코드를 실행 할 수 없음.
    • 커널 모드 : 커널 영역의 코드를 실행할 수 있음.
 
사용자가 설치하고 실행하는 거의 모든 프로그램이 사용자 모드로 실행된다.
사용자 모드로 실행되는 프로그램이 시스템자원에 접근하기 위해 커널 모드로 변경하기 위해서는 시스템콜(System Call) 요청을 한다.
 
 
프로그램 실행 중 시스템콜을 발생 시키는 명령어가 실행 되면
CPU는  현재까지의 작업을 백업하고, 커널 영역시스템콜을 수행하는 코드를 실행한 뒤 다시 작업중이던 프로그램으로 복귀하여 실행을 이어간다.
 
 
 
 

 

2. [프로세스 Process]

 
 
프로세스
    • 실행중인 프로그램을 의미
 
일반적으로 하나의 CPU는 하나의 프로세스만을 실행 할 수 있다.
CPU프로그램들을 번갈아 가며 실행해서 여러 개의 프로세스가 동시에 동작하는 것처럼 보이게 만든다.
 
RAM - 주기억장치
HDD, SSD - 보조기억장치
 
포그라운드 프로세스(foreground process)
    • 사용자가 눈으로 실제 볼 수 있는 프로세스
백그라운드 프로세스(background process)
    • 사용자가 보지 못하는 프로세스
    • Linux운영체제 에서는 데몬이라 부르고, 윈도우 운영체제 에서는 서비스라고 부른다.
 
운영체제는 번갈아 수행하는 프로세스의 실행 순서를 관리하고, 해당 프로세스에 필요한 시스템자원을 배분한다.
이러한 실행순서 관리, 자원배분을 하는데에 운영체제는 PCB(Process Control Bolck)라는 것을 이용한다.
 

PCB

커널영역 생성된다.

 

PCB (Process Control Block)

    • 프로세스와 관련된 정보를 저장하는 자료구조
PCB
프로세스 ID 프로세스 식별을 위한 고유 ID
프로세스 상태  실행, 대기, 종료의 상태 
레지스터 값 다음 실행할 명령어 주소가 담긴 Program Counter를 포함한 레지스터 값들
CPU 스케쥴링정보 프로세스가 언제 CPU를 할당 받을지에 대한 정보
메모리 관련 정보 프로세스가 어느 주소에 저장되어 있는지에 대한 정보
열린 파일 목록 프로세스에 대해 열린 파일 목록이 명시
 
 
프로세스A에서 CPU프로세스B사용하려면 
이전에 CPU에 의해 실행되었던 프로세스A의 정보(PCB 설명에서 각종 레지스터 값, 열린 파일 목록 같은..)가 백업되야 한다.
(다음에 또 프로세스A를 재개하기 위해서 해당 정보가 필요하기 때문..)
이런 프로세스의 실행을 재개하기 위해서 필요한 정보를 ‘문맥’(Context)이라 한다. 
 
CPU가 현재 실행 중인 프로세스에서 다른 프로세스로 전환할 때
이전 프로세스의 상태(문맥)를 저장하고, 다음 프로세스의 상태를 복원하는 작업
문맥 교환(Context Switching) 이라 한다.
 
 
프로세스가 생성되면 메모리(RAM)의 커널영역PCB가 생성된다.
프로세스가 생성되면 메모리(RAM)의  사용자 영역에는 다음과 같이 프로세스가 저장된다.
 
  • 코드 영역
    • CPU 프로세스에서 실행할 명령어가 담겨있다.
    • 읽기전용
  • 데이터 영역
    • 프로세스가 실행되는 동안 유지되는 데이터를 저장.
    • 전역변수대표적
  • (HEAP) 영역
    • 프로그래머가 직접 공간을 할당 하는 영역
  • 스택(STACK) 영역
    • 일시적인 데이터를 저장하는 영역
    • 매개변수, 지역변수

코드 영역, 데이터 영역은 그 메모리의 크기가 변하지 않아 정적 할당 영역 이라고도 부른다.
영역과 스택 영역은 실시간으로 크기가 변경될 수 있어서 동적 할당 영역 이라고도 부른다.
 
 
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
more
Total
Today
Yesterday