개발

[운영체제] System Structure & Program Excutiuon (시스템 구조 & 프로그램 실행) - 2 (저장장치 계층 구조, 프로그램의 실행, 커널 주소 공간, 프로그램의 실행)

김나나_ 2024. 7. 3. 18:47

저장장치 계층 구조

https://velog.io/@gkh4302/System-Structure-Program-Execution-2

 

https://youn0111.tistory.com/m/16

 

- 맨 위에는 CPU 가 있는데, 그 안에 레지스터가 있다.

- 캐시 메모리도 CPU 안에 있다.

- 메인 메모리는 D램으로 구성되어 있다.

- 위로 갈 수록 속도가 빠르고, 단위 공간 당 가격이 비싸다 = 용량이 적다

- Volatility(휘발성): 레지스터, 캐시메모리, 메인 메모리는 휘발성 매체이다.

- Primary: CPU 에서 직접 접근할 수 있다 (=Exectuable 실행 가능하다) = byte 단위로 접근 가능해야 한다.

- 하드 디스크는 섹터 단위로 접근이 가능하다.

- 밑으로 가면 속도가 느리다.

- main memory 는 registers 보다 속도가 느리기 때문에 중간에 Cache Memory가 있다. 캐시 메모리는 용량이 적다. 당장 필요한 것만 적재(이를 캐싱이라고 한다) / 캐싱은 재사용이 목적이다. / 밑에 있는 것들을 한 번 캐싱해놓으면 데이터를 읽을 때 밑에서 읽지 않고 바로 사용 가능하다

 

프로그램의 실행(메모리 load)

 

- 보통 프로그램이라 하면, 실행 파일 형태로 하드 디스크에 저장되어 있다.

- A라는 프로그램을 실행시키면 프로세스 A의 자기 자신만의 독자적인 주소 공간이 생긴다 (0번지부터 시작)

- code: 기계어 코드

- data: 변수, 전역변수, 프로그램이 사용하는 자료 구조

- stack: 함수 호출, 리턴할 때 쌓았다가 꺼내는 곳

- 주소 공간을 물리적인 메모리에 올려서 실행시킨다.

- 커널 영역은 메모리에 항상 상주한다.

- 당장 필요한 부분만 물리적 메모리에 올린다. (메모리 낭비 방지를 위해) 후에 사용되지 않으면 메모리에서 쫒아 낸다.

보관해야할 때는 디스크의 swap area에 내려 놓는다.

- swap area 는 전원이 꺼지면 의미가 없어지는 공간이다 (물리적 메모리의 연장선이라 생각하면 된다) / file system은 비휘발성 하드 디스크이다.

위의 내용들은 당장 이해가 안 가도 뒤에서 더 자세히 다룰 예정이라 가볍게 넘기기

 

- 물리적 메모리도 0번지부터 시작한다.

- 커널도 code, data, stack 으로 구성되어 있다.

 

커널 주소 공간의 내용

 

- 인터럽트가 들어오면 CPU 를 사용하게 된다.

- PCB: 각 프로세스를 관리하기 위한 자료 구조가 필요하다. (Proccess Control Block) 

=> 프로세스마다 PCB 가 있다.

 

사용자 프로그램이 사용하는 함수

  • 함수(Function)
    1. 사용자 정의 함수
      - 자신의 프로그램에서 정의한 함수

    2. 라이브러리 함수
      - 자신의 프로그램에서 정의하지 않고 갖다 쓴 함수
      - 자신의 프로그램의 실행 파일에 포함되어 있다

    3. 커널 함수
      - 운영체제 프로그램의 함수
      - 커널 함수의 호출 = 시스템 콜

- 커널 함수는 내 프로그램 안에 정의되어 있지 않다. (내 주소 공간에 없음) 따라서 커널 함수를 호출(커널 주소 공간에 있음)하려면 시스템 콜을 통해서 인터럽트 라인을 셋팅해서 CPU 제어권을 넘어가게 해야한다.

 

프로그램의 실행

 

- 프로그램은 유저 모드, 커널 모드를 반복하다가 끝난다.

- 해당 그림은 I/O 인터럽트, 타이머 인터럽트 등 배제 시킨 그림이다.

 

참고 강의:

http://www.kocw.net/home/search/kemView.do?kemId=1046323

 

운영체제

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

www.kocw.net

이화여자대학교 반효경 교수님의 운영체제 강의