운영 체제 기술 지식

데일리·2022년 4월 4일
0

기술 지식

목록 보기
2/6

1. 컴파일러와 인터프리터의 차이

  • 컴파일러와 인터프리터 모두 고레벨 언어를 기계어로 변환하는 역할을 수행한다.
  • 컴파일러는 전체 코드를 보고 명령어를 수집하고 재구성
  • 인터프리터는 고레벨 언어를 중간 레벨언어로 한 번 변환하고 이를 각 행마다 실행하기 때문에 컴파일러가 인터프리터보다 실행시간이 빠른 경우가 많다.

2. 멀티 스레드

  • 장점
    • 새로운 프로세스를 생성하는 것보다 스레드를 생성하는 것이 빠르다
    • 자원과 상태를 공유하여 효율적인 운영이 가능하다.
    • 프로세스 작업 전환보다 스레드의 작업 전환이 빠르다.
  • 단점
    • 하나의 스레드만 실행 중일 대는 오히려 시간이 지연 될 수 도 있다.
    • 멀티 쓰레드를 위해 운영체제의 지원이 필요
    • 스레드 스케줄링을 신경 써야한다.

3. LRU

  • 가장 오래있었던 스레드를 바꿔주는 스케줄링 기법

4. Thread-safe

  • 멀티 스레드 프로그래밍 환경에서 일반적으로 어떤 함수나 변수 혹은 객체가 여러 쓰레드부터 동시에 접근이 이루어져도 프로그램 실행에 문제가 없는 것
  • 이를 구현하기 위해서는 임계 영역에 내부되는 연산을 직렬화하여 한번에 한 스레드에서만 연산이 수행 되도록 해야한다.

5. 데드락

  • 한 프로세스가 임계 영역을 계속적으로 점유하고 있는 상태
  • 예방
    • 상호배제를 부정: 읽기 전용 파일과 같은 공유 자원 사용
    • 점유 및 대기 부정
      • 프로세스 대기를 없애기 위해 프로세스가 실행되기전 필요한 자원을 모두 할당
        • 자원을 점유하고 있지 않을 때만 다른 자원을 요청(기아 상태 유발)
    • 비선점 부정
      • 모든 자원에 대한 선점을 허용
    • 순환 대기 부정
      - 자원에 대해 고유한 번호를 할당하고 번호 순서대로 자원을 요구

6. 페이지 폴트

  • 가상 메모리의 페이지 테이블에 페이지를 요청했을 때 그 페이지가 없을 경우 페이지 폴트 발생
  • 발생하면 프레임을 새로 할당 받아 페이지를 스왑영역에서 물리 메모리로 옮긴다.

7. 가상 메모리

  • 물리 메모리의 한계 로 인해 프로세스는 가상 주로를 사용하고 실제 해당 주소에서 데이터를 읽고 쓸 때 물리주소로 바꿔주게 된다.

8. 캐시의 지역성

  • 캐시가 효율적으로 동작하려면 캐시의 적중율을 극대 화 시켜야된다.
  • 캐시에 저장할 데이터가 지역성을 가져야 한다.
  • 지역성: 데이터 접근이 시간적, 공간적으로 가깝게 일어나는 것
    • 시간적 지역성: 특정 데이터가 한번 접근 되었을 경우 가까운 미래에 또 한번 데이터에 접근할 가능성이 높은 것
    • 공간적 지역성: 특정 데이터와 가까운 주소가 순서대로 접근되었을 경우
    • 그 주소뿐 아니라 해당 블록을 전부 캐시에 가져온다.
profile
하루에 한편 씩 읽기 좋은 테크 로그

0개의 댓글