YEOJIN-DEV

TIL - 180812

August 12, 2018 | 1 Minute Read

8월 12일 TIL : 공룡책(3/108) ~26쪽

Beowulf Cluster

오픈소스, 리눅스 환경의 클러스터 기술이다.

Operating-System Structure

job pool

하드디스크에 존재하는데 모든 job들은 여기 모여 있다. OS는 job pool에서 적절한 알고리즘에 따라 job을 메인 메모리로 로드해야만 한다.

time sharing

CPU는 메인 메모리의 job들을 짧은 시간동안 돌아가면서 처리한다. 사용자는 마치 CPU가 동시에 job들을 처리하는 것처럼 느낀다.

job scheduling, CPU scheduling

어떤 job을 먼저 실행시킬 것이냐, CPU는 어떻게 사용할 것이냐. OS가 적절한 알고리즘에 따라 결정해주어야 한다.

virtual memory

job마다 응답 시간을 보장하기 위해서 메인 메모리와 하드디스크 사이에 교체(swap)가 필요하다. 하드디스크 내에 메인 메모리에 들어갈 데이터들을 저장해놓는 공간이 있는데 이를 가상 메모리라고 부른다.

Operating-System Operations

OS는 기본적으로 인터럽트를 통해 관리된다. 그런데 인터럽트 외에 트랩이라는 것이 있다. 이는 쉽게 말하면 에러를 말하는데, 시스템 코드가 아닌 사용자 코드가 에러를 일으켰을 때 그것이 시스템에 영향을 주면 큰 문제가 생긴다. 그래서 OS는 mode bit를 만들어서 시스템 코드가 실행 중인지, 사용자 코드가 실행 중인지 확인하도록 하고 있다. 만약 에러가 발생해도 사용자 코드 실행 중인 상태의 에러라면 시스템에는 영향을 끼치지 못 한다.

만약 가상 머신 환경이라면 사용자 코드 실행 상태와 시스템 코드 실행 상태의 중간 정도의 권한을 갖게 된다.

timer

에러만이 아니라 사용자 코드가 무한 루프와 같이 계속 대기하고 있는 상태를 가지고 있다면 이 역시 문제가 된다. OS는 타이머를 만들어서 사용자 코드가 일정 시간 이상 지연되면 인터럽트를 발생시키도록 동작한다.

Process Management

  1. 프로세스와 쓰레드 스케줄링
  2. 프로세스와 쓰레드 생성, 삭제
  3. 프로세스 동기화 메커니즘 제공
  4. 프로세스 간 통신 메커니즘 제공
  5. 프로세스 일시 중단 및 다시 시작

Memory Management

  1. 메인 메모리를 지금 누가 사용하고 있고 어느 부분을 사용하고 있는지 추적하는 기능
  2. 어떤 프로세스의 메모리를 메모리에 로드할지 그리고 삭제할지 결정하는 기능
  3. 메모리 공간을 확보하거나 회수하는 기능

Storage management

  1. 파일 생성 및 삭제
  2. 디렉토리 생성 및 삭제
  3. 파일, 디렉토리 관리 기능
  4. 비휘발성 메모리에 백업하는 기능
  5. 파일과 스토리지 사이의 매핑 기능