PintOS-kaist-jungle) OS 용어 정리

Mongle·2021년 1월 29일
1

OS프로젝트

목록 보기
1/8
post-thumbnail
  • 프로세스와 스레드

  • 프로세스의 정의
    실행중인 프로그램이다. 더 구체적으로는 프로세스 관리 블록(PCB)을 할당받은 개체이고 실행 중에 각종 자원을 요구하고 할당받고 반납할 수 있는(제어할 수 있는) 개체를 말한다.
    PCB는 커널 공간 내에 존재하고 각 프로세스들에 대한 정보를 관리하는 역할을 한다.
    자원이란, 커널의 관리하에 프로세스에게 할당/반납되는 수동적 개체를 말한다.

  • 프로세스와 프로세서
    프로세스는 커널에 등록된 실행 단위로 실행 중인 프로그램이라고 볼 수 있다.
    프로세서는 CPU라고 생각할 수 있다. 실행의 주체
    연상을 수행하거나 컴퓨터의 모든 동작을 제어하는 역할을 한다.

  • 레지스터란?
    프로세서 내부에 있는 메모리고 프로세서가 사용할 데이터를 저장한다. 컴퓨터에서 가장 빠른 메모리이다. CPU가 어떤 작업을 할 때에는 메인 메모리에 있던 데이터를 register에 올린 후 register에 있는 데이터를 가지고 작업한다.

  • 캐시
    프로세서(CPU) 내부에 있는 메모리이지만 레지스터보다는 코어에서 멀리 떨어진 메모리이다. 레지스터보다 속도가 느리고 가격이 싸다. 캐시는 메모리에서 block단위로 데이터를 가져와서 저장한다.

  • 주기억장치 (메인 메모리이고 주로 DRAM을 사용함)

  • 운영체제와 프로세서의 관계
    운영체제는 프로세서에게 처리할 작업을 할당해주고 관리하는 역할을 한다.

  • 커널과 시스템 콜
    커널은 OS의 가장 핵심부분, 프로세스 및 프로세서 관리와 메모리 관리, 파일 관리 같은 중요한 일을 해서 항상 메모리에 올라가있는다. 시스템 콜은 커널한테 작업을 요청하는 통로

  • 프로세스 상태

  • 인터럽트(Interrupt)
    예상치 못한 외부에서 발생한 이벤트
    가장 대표적인게 I/O interrupt

  • context switching
    프로세스가 실행되고 있는 중간에 interrupt를 처리하려고 하면
    현재 실행되고 있는 현재 프로세스의 register context를 PCB에 저장해놓아야한다.(context saving)
    그리고 다시 이것을 프로세스로 복구하는 작업이 context restoring이다.
    context switching은 process switching이라고 이해해도 된다.

  • context (프로세스와 관련된 정보들의 집합)

  • 오버헤드
    오버헤드(Overhead)란 어떤 처리를 하기 위해 들어가는 간접적인 처리 시간 · 메모리 등을 말한다.
    예를 들어 A라는 처리를 단순하게 실행한다면 10초 걸리는데, 안전성을 고려하고 부가적인 B라는 처리를 추가한 결과 처리시간이 15초 걸렸다면, 오버헤드는 5초가 된다.

  • PCB(Process Control Block)
    운영체제가 프로세스를 제어하기 위해 정보를 저장해놓는 곳으로, 프로세스의 상태 정보를 저장하는 구조체이다. 프로세스 상태 관리와 context switching을 위해 필요하다. PCB는 프로세스 생성 시 만들어지며 주기억장치에 유지된다.(또한 커널영역에 저장된다.)
    즉 프로세스가 만들어지면 그 프로세스에 저장되어야 할 데이터들을 하나의 structure로 만들어서 블럭에 저장해놓는 것임.
    https://jhnyang.tistory.com/33

  • 스케쥴링
    스케쥴링이라는 것은 프로세스 상태가 ready인 프로세스 중에서 하나를 고르는 일이다. 물론 운영체제가 특정 알고리즘을 이용해서 스케쥴링 한다.

  • 스레드
    스레드란,
    프로세스의 자원을 공유하면서 각각의 제어가 가능한 단위
    프로세스 안에 여러개의 스레드가 존재할 수 있고 자기만의 제어를 할 수 있다.
    (pintos에서는 하나의 프로세스 안에 하나의 스레드만 존재한다고 가정한다.)

  • PC(프로그램 카운터)는 가상메모리상의 코드 영역(Code segment)에 존재한다.

  • 사용자 수준 쓰레드와 커널 수준 쓰레드
    다대일 맵핑이 가능함

    https://d4m0n.tistory.com/12

*CPU와 Memory

*cpu와 프로세서의 차이점
https://brad903.tistory.com/entry/%ED%94%84%EB%A1%9C%EC%84%B8%EC%84%9C%EC%99%80-%EC%BD%94%EC%96%B4%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

  • 대표적인 성능 지표
    응답 시간(response time) : 작업이 요청되고 응답을 받을 때 까지의 시간. 실시간 시스템, 채팅 시스템에 중요한 지표로 쓰임
    작업 처리량(throughful) : 단위 시간 동안 완료된 작업의 수
    자원 활용도(resource utilization) : 주어진 시간동안 자원이 활용된 시간(=자원을 놀게하지않고 얼마나 효율적으로 사용했는가)

  • 커널 영역
    가상 메모리상에서 유저 영역의 연장선상에 존재하는 메모리이다.

    커널 영역은 시스템에 필요한 데이터들이고 자주 사용되는 데이터이므로 페이지 파일에 저장하지 않고 물리메모리에 저장한다.

offset
오프셋이란, 두 번째 주소를 만들기 위해 기준이 되는 주소에 더해진 값을 의미한다. 예를 들어, 만약 아래의 수식에서 C가 100번지의 주소를 가리키고 있다면, 그 수식의 결과는 107번지를 의미할 것이다.
C + 7
여기서 이 수식 내의 "7"이, 바로 오프셋이다. 오프셋을 이용하여 주소를 나타내는 것을 상대주소 지정방식이라고 부르는데, 그 이유는 결과 주소가 다른 지점의 상대적인 위치가 되기 때문이다.

profile
https://github.com/Jeongseo21

0개의 댓글