IT recording...

[OS] 2. 프로세스란? - (1) 본문

Operating System

[OS] 2. 프로세스란? - (1)

I-one 2022. 4. 24. 01:31

[이화여자대학교 반효경 교수님의 강의를 듣고 정리한 글입니다.]

운영체제

 

운영체제

운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각

www.kocw.net


[그림과 함께 편하게 보려면 여기로]

https://adorable-aspen-d23.notion.site/OS-2-1-69fa28e0783b4e379c50c28653666f54

 

[OS] 2. 프로세스란? - (1)

1. 프로세스 준비

adorable-aspen-d23.notion.site

1. 프로세스 준비

1. 동기/비동기

1. 동기식 입출력 (synchronous I/O)

  • Read작업의 경우
    • 데이터를 받고 그 다음 작업을 해야함
  • I/O 요청 후 입출력 작업이 완료되기를 기다린다.
  • 해당 프로세스에서 입출력 작업이 끝나기 전까지는 해당 request process에서 이후 작업 수행 불가
  • 근데 보통 I/O작업이 끝나기까지 기다리는 것은 CPU 낭비낭비~ → CPU제어권을 다른 프로그램에 넘겨준다.

2. 비동기식 입출력 (asynchronous I/O)

  • Write작업의 경우
    • 데이터를 받기를 기다리지 않아도 됨
  • I/O요청 후 입출력 작업이 완료되기를 기다리지 않고 , 해당 request process에서 다음 작업을 바로 수행한다.
  • 입출력과 무관하게 동작함

2. 프로세스와 메모리

1. 프로그램 실행 시 메모리 load

  • 프로그램 : 프로그램은 실행 전에 file system안에 파일 형태로 저장되어 있다.
  • 프로세스 : 프로그램을 실행시키면 메모리에 올라가고, 이렇게 실행중인 프로그램을 프로세스라 한다.

2. Virtual Address Space (VAS, 논리적인 주소)

  • 프로그램이 실행될 때 독자저긴 Address Space가 만들어진다.
  • 프로세스들마다 가상으로 생성, 0번지부터 시작
  • 구성
    • code : CPU가 수행할 기계어들이 모인 부분 (실행 파일에서 코드가 올라온다.)
    • data : 데이터가 보관되는 영역 (전역변수, 프로그램이 실행하고 나서 끝날 때까지 남아있는 변수 등)
    • stack : 지역변수, 함수 호출과 관련된 정보들이 보관되는 영역

3. Physical Address Space (물리적인 메모리)

  • VAS 중에서 당장 필요한 부분이 물리적인 메모리에 올라간다. (메모리 낭비 방지)
    • 논리 주소를 물리주소로 Mapping 한다. (하드웨어가 수행)
  • 당장 필요하지 않은 부분은 SWAP된다.

4. Kernel Address Space (커널 주소 공간)

  • 커널 : 메모리에 상주하는 운영체제의 부분 (운영체제의 핵심)
  • 구성
    • code : 시스템콜, 인터럽트 처리 코드, 자원 관리를 위한 코드
    • data : PCB
      • 운영체제가 모든 하드웨어, 현재 실행 중인 모든 프로세스들을 관리하기 위한 자료구조
      • 돌아가는 프로세스마다 개별 PCB가 생성된다.
    • stack
      • 프로세스마다 별도로 스택을 가지고 있다.
      • 커널로 들어오기 전에 누구에 의해 호출되었는지에 따라 프로세스 별로 별도의 커널 스택이 사용된다.

5. 함수

  • 사용자 정의 함수
    • 자신의 프로그램에서 정의한 함수
  • 라이브러리 함수
    • 다른 사람이 정의한 함수 가져다 쓰는 것
    • 자신의 프로그램의 실행 파일에 포함되어 있다.
  • 커널 함수
    • 운영체제 프로그램의 함수
    • 커널함수의 호출 == 시스템 콜
      • 커널 영역에 존재하는 코드는 user 영역에서 jump할 수 없으므로, 운영체제에 요청해야 한다. (시스템콜)

6. 유저모드와 커널모드

  • 유저모드
    • 사용자 정의함수, 라이브러리 함수 실행 시의 모드
    • 사용자 프로그램이 CPU를 제어하는 상태
    • mode bit = 1
    • 제한된 기계어만 사용 가능
  • 커널모드
    • 커널함수의 호출(시스템 콜) 발생 시의 모드
    • 운영체제가 CPU를 제어하는 상태
    • mode bit = 0
    • 제약 없이 모든 작업 수행 가능

'Operating System' 카테고리의 다른 글

[OS] 6. CPU 스케줄링  (0) 2022.04.24
[OS] 5. 쓰레드  (0) 2022.04.24
[OS] 4. 프로세스 시스템콜, 협력 - (3)  (0) 2022.04.24
[OS] 3. 프로세스 스케줄링 - (2)  (0) 2022.04.24
[OS] 1. 운영체제  (0) 2022.04.24
Comments