Devcon 9월 첫 모임

조영록·2023년 9월 2일
0

운영체제

레지스터는 CPU 내부에 있으며 빠르게 데이터를 저장하고, 현재 실행중인 명령의 내용을 기억하고, 다음번에 실행할 명령어의 번지를 기억한다.

캐시는 CPU 내부에 있으며, CPU 처리 속도와 메모리의 접근 속도의 차이를 줄이기 위해 자주 사용되는 데이터나 값을 미리 복사해 놓는 임시 저장소이다.

메인 메모리는 CPU 외부에 있으며, 프로세스가 필요로 하는 모든 데이터와 명령어가 메인 메모리에 저장된다. 데이터가 캐시에 없을 때 CPU는 메인 메모리로 이동하여 데이터를 가져온다.

캐시 부족 시 교체 알고리즘

  • 최소 최근 사용 (Least Recently Used, LRU) 알고리즘 : 가장 오래 사용되지 않은 블록 교체
  • FIFO (First-in-First-out, FIFO) 알고리즘 : 캐시에 적재된 지 오래된 블록을 교체
  • 최소 사용 빈도 (Least Frequently Used: FLU) 알고리즘 : 참조되었던 횟수가 가장 적은 블록을 교체

프로세스 관리

프로그램이 실행되면 프로세스가 된다. (동적 상태)
프로그램은 저장장치에 있는 소스코드이다. (정적 상태)

프로세스는 운영체제에 의해 메모리에 위치한다.

프로세스 제어 블록 (PCB)

프로세스 제어 블록이란 프로제스가 생성될 때 커널 영역에 각 프로세스당 하나씩 생성된다.

프로세스는 왜 관리되어야 할까?
컴퓨터의 자원을 효율적으로 활용해야 하기 때문이다.

다중 프로세스 환경은 병렬 처리가 가능하여 시스템 성능 향상을 기대할 수 있고, 시분할 시스템은 CPU 시간을 작은 단위로 분할하여 여러 프로세스가 동시에 실행되는 것처럼 보이게 할 수 있다.

위 목적을 달성하기 위해 프로세스 스케줄러를 사용한다.

Context Switching

Context Switching이란 현재 프로세스를 다른 프로세스로 교환하기 위해서 이전 프로세스의 상태를 보관하고 새로운 프로세스를 Ready Queue에 올립니다.

프로세스간 통신 (IPC)

독립적인 프로세스가 아니라면 프로세스 간 통신은 중요하다.

정보 공유 : 여러 응용 프로그램에게 동일한 리소스가 필요할 수 있음
계산 가속화 : 특정 태스크를 빠르게 수행할 수 있도록 함.

IPC의 방식
1. 공유 메모리
- 버퍼를 사용
2. 메시지 전달

협력 프로세스(Cooperation process)의 이해

생산자 - 소비자 패턴

ex) 웹 서버(생산자)는 HTML을 제공하고 클라이언트 브라우저(소비자)는 이를 렌더링해서 사용한다.

소켓 통신

두 프로세스가 통신하려면 양쪽 프로세스에 소켓이 필요하다.

스레드와 병행성

스레드는 CPU 이용의 기본 단위이다.
같은 프로세스에 속한 다른 스레드와 코드, 데이터 섹션 등의 운영체제 자원들을 공유한다.

프로세스는 스레드의 집합. 스레드는 경량 프로세스라고 할 수 있다.

다중 스레드 모델

스레드는 두가지 수준으로 지원된다.

  • 사용자 스레드 : 사용자 수준, 커널 위에서 지원되나 커널의 지원없이 관리
  • 커널 스레드 : 커널 수준에서 지원 및 관리됨.
profile
늘 성장하고 싶은 개발자입니다 :) 제가 볼려고 쓰는 블로그입니다.

0개의 댓글