티스토리 뷰

etc/면접

면접 준비 - 운영체제

hrniin 2023. 3. 10. 18:46
728x90

- thread vs process

  • 프로세스: 일반적으로 실행 중인 프로그램을 뜻하며 메모리에 적재되어 cpu의 할당을 받을 수 있는 것.
    운영체제로부터 메모리 주소 공간, 메모리 등을 할당 받으며 프로세스는 독립적이기 때문에 이를 다른 프로세스와 공유하지 않음.
  • 스레드: 프로세스 내의 실행 단위.
    프로세스의 주소 공간이나 자원을 다른 스레드와 공유할 수 있다. 

 

- 멀티 스레드

하나의 프로세스에 여러개의 스레드가 존재하는 것.

각각의 스레드는 독립적인 작업 수행을 위해 각자의 스택과 PC 레지스터를 갖는다.

 

 

- 멀티 프로세스 vs 멀티 스레드

멀티 프로세스: 하나의 프로세스가 죽더라도 다른 프로세스에 영향을 미치지 않는다. 메모리 공간, cpu 시간 차지.

멀티 스레드: 오류로 하나의 스레드가 종료되면 전체 스레드가 종료될 수 있다. 동기화가 필요.

 

 

- 문맥 교환

한 프로세스가 cpu를 사용 중일 때, 다른 프로세스가 cpu를 사용하도록 하기 위해

이전의 프로세스 상태를 PCB에 저장하고 새로운 프로세스의 상태를 가져오는 것.

 

 

- PCB

운영체제가 프로세스를 식별하고 관리하기 위해 생성하는 자료구조. 

 

 

- 스케줄링 알고리즘

  • Ready Queue에 있는 프로세스들이 CPU 할당을 받을 기준.
  • FCFS: 비선점. 먼저 온 프로세스 순서대로 처리
  • SJF: 비선점. CPU 이용 시간이 짧은 프로세스 먼저 할당
  • SRTF: 선점. CPU 이용 시간이 짧은 프로세스가 도착했다면 선점
  • 우선순위 스케줄링: 선점/비선점. 우선순위가 높은 순서대로 할당
  • Round Robin: 각 프로세스에게 동일한 CPU 할당 시간을 부여하고, 할당 시간이 지나면 큐의 가장 뒤에 가서 순서를 기다림.

 

- 선점형 vs 비선점형

선점: 하나의 프로세스가 다른 프로레스를 가로채 CPU를 차지할 수 있음

비선점: 하나의 프로세스가 끝날때까지 다른 프로세스는 CPU를 사용할 수 없음

 

 

- 프로세스 상태

  • new: 프로세스 생성
  • ready: CPU 할당을 기다리는 상채
  • running: 프로세스가 CPU의 할당을 받아 실행중
  • blocked: 프로세스가 입출력 작업을 처리
  • terminated: 프로세스 실행 완료. CPU 반납
  • suspended: 외부적인 이유로 프로세스의 수행이 정지되어 프로세스 전체가 디스크로 swap-out (ready나 blocked일때)

 

- 임계영역, 쟁상태, 교착 상태

임계영역: 동일한 자원을 동시에 접근하는 코드.

경쟁 상태: 여러 프로세스나 스레드가 동시에 공유 자원에 접근하여 결과에 영향을 줄 수 있는 상태

교착상태: 둘 이상의 프로세스가 다른 프로세스가 점유하는 자원을 서로 기다리고 있어 무한 대기.

 

 

- 동기화(세마포어, 뮤텍스)

멀티 스레드 환경에서, 임계 영역 해결을 위해 동기화 필요. 

  • 세마포어: 동기화 대상이 하나 이상인 경우 사용. 공유 자원의 개수를 나타내는 변수를 사용함.
  • 뮤텍스: 동기화 대상이 하나인 경우 사용. 락을 사용해 하나의 프로세스나 스레드가 단독으로 공유 자원에 접근할 수 있도록 함.

 

- 동기/비동기

동기: 메소드를 실행시키고 결과가 반환될 때까지 대기하는 것

비동기: 메소드를 실행시키고 결과가 반환될 때까지 대기하지 않고, 백그라운드 스레드에게 해당 task를 전달하고 바로 다음 코드를 실행.

 

 

- 단편화

프로세스들이 메모리에 적재되고 제거되는 일이 반복되면서 메모리 사이에 남는 공간이 생기는 것.

외부 단편화: 물리 메모리 공간 중 사용하지 못하는 일부분

내부 단편화: 프로세슥 사용하는 메모리 공간 중 남는 부분

 

 

- 가상 메모리

프로세스의 일부만 메모리에 올라와도 실행이 가능한 메모리 관리 기법.

프로세스가 필요한 페이지만 물리 메모리에 적재시킴.

프로그램이 물리 메모리보다 커도 된다. 

 

 

- 페이징

외부 단편화를 해결하기 위해 사용.

프로세스가 물리 메모리의 연속된 공간에 적재되지 않아도 된다는 메모리 관리 기법.

물리 메모리-> 프레임. 논리 메모리-> 페이지

 

 

- 페이지 교체 알고리즘

페이징 기법을 사용할 때, 물리 메모리가 다 찼을 경우 어떤 페이지를 교체할지 정하는 알고리즘.

  • FIFO: 물리 메모리에 들어온 페이지 순서대로 교체. 페이지를 저장할 수 있는 프레임 수를 늘려도 페이지 부재가 더 많이 발생하는 Belady 모순 발생.
  • OPT: 앞으로 가장 오랫동안 사용되지 않을 페이지 교체. 프로세스의 메모리 참조 계획을 파악할 수 없어 구현 어려움.
  • LRU: 가장 오랫동안 사용되지 않은 페이지 교체. 가장 많이 사용.
  • LFU: 참조 횟수가 가장 적은 페이지 교체. 
  • MFU: 참조 횟수가 가장 많은 페이지 교체. 참조 횟수가 적은 페이지는 최근에 메모리에 올라왔고 앞으로 계속 사용될 것이라는 가정.

 

- 세그멘테이션

페이징은 논리 메모리와 물리 메모리를 동일한 크기로 분할.

페이징과 달리 논리 메모리와 물리 메모리를 서로 다른 크기의 논리적 단위인 세그먼트(Segment)로 분할한다.

세그먼트 테이블을 통해 논리 주소를 물리 주소로 변환해야 함. 

 

 

- 캐시

속도가 빠른 CPU와 속도가 느린 주기억 장치 사이에 존재하여 속도차이에 의한 병목 현상을 줄이기 위한 메모리

캐시의 지역성: 기억 장치 내 정보의 특정 부분을 집중적으로 참조.

시간 지역성: 최근에 참조된 주소는 곧 다시 참조됨 

공간 지역성: 최근에 참조된 주소와 인접한 주소가 참조됨

 

 

* 참고

https://github.com/JaeYeopHan/Interview_Question_for_Beginner

https://dev-coco.tistory.com/category/%F0%9F%93%8CETC

https://chelseashin.tistory.com/40

728x90

'etc > 면접' 카테고리의 다른 글

면접 준비 - 데이터베이스  (0) 2023.03.11
면접 준비 - 스프링, 기타  (0) 2023.03.11
면접 준비 - 네트워크  (0) 2023.03.11
면접 준비 - 자바  (0) 2023.03.10
면접 준비 - 자료구조  (0) 2023.03.10
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함