ABOUT ME

AI Engineer가 되는 그날까지

Today
Yesterday
Total
  • 기술면접 - 운영체제
    CS 공부/취업준비 이론정리 2024. 3. 26. 17:09

    💡 프로세스와 쓰레드의 차이에 대해 설명해주세요

    프로세스
    - 실행 중인 프로그램, 완벽히 독립적이기 때문에 메모리 영역을 다른 프로세스와 공유하지 않는다.
    - 최소 1개의 쓰레드를 가지고 있다

    쓰레드
    - 프로세스 내에서 stack만 따로 할당 받고, 그 외의 메모리 영역을 공유하기 때문에 다른 쓰레드의 실행 결과를 즉시 확인할 수 있다.
    - 프로세스 내에 존재하며 프로세스가 할당받은 자원을 이용해 실행된다. 

     

    💡 멀티 프로세스와 멀티 쓰레드의 특징

    멀티 프로세스
    - 하나의 프로세스가 죽어도 다른 프로세스에 영향을 끼치지 않고 계속 실행됨
    - 멀티 쓰레드보다 많은 메모리 공간과 CPU 차지

    멀티 쓰레드
    - 멀티 프로세스보다 적은 메모리 공간을 차지하고 문맥 전환이 빠름
    - 하나의 프로세스가 죽으면 전체 쓰레드가 영향을 받음 (동기화 문제)

     

    💡 멀티 쓰레드의 동시성과 병렬성

    동시성: 멀티 작업을 위해 싱글 코어에서 여러 개의 쓰레드가 번갈아 실행하는 것
    병렬성: 멀티 작업을 위해 멀티 코어에서 한 개 이상의 쓰레드를 포함하는 각 코어들을 동시에 실행하는 것

     

     

    💡 Deadlock 데드락이란?

    프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스의 자원을 요구하며 무한정 기다리는 상황
    Deadlock의 4가지 조건
    - 비선점(nonpreemptive): 다른 프로세스의 자원을 뺏을 수 없음
    - 교착 상태(Circular wait): 두 개 이상의 프로세스가 자원 접근을 기다릴 때, 프로세스 간의 사이클이 형성되어야함 (P0-P1...Pn-P0)
    - 점유 대기(Hold & Wait): 공유 자원에 대한 접근 권한을 가진 채로 다른 자원에 대한 접근 권한 요구
    - 상호 배제(Mutual exclusion): 한 번에 한 프로세스만 공유 자원에 접근 가능

     

     

    💡 동기와 비동기의 차이

    동기
    - 순차적, 직렬적으로 task 수행
    - 서버에 데이터를 요청하고 데이터가 응답될 때까지 이후의 task는 blocking(작업 중단) 된다.

    비동기
    - 병렬적으로 task 수행
    - 서버에 데이터를 요청하고 데이터가 응답될 때까지 대기하지 않고 즉시 다음 task를 계속해 수행

     

     

     

    💡 H

     

     

     

    💡 H

     

     

     

    💡 B

    'CS 공부 > 취업준비 이론정리' 카테고리의 다른 글

    기술면접 준비 - 자료구조  (1) 2024.02.28
    MobileFaceSwap (2022)  (0) 2023.11.15
    머신러닝 CS / 면접 질문 & 답변 모음  (1) 2023.11.12
    Object Detection (재활용품)  (2) 2023.11.12
    Mask Classification  (0) 2023.11.07
Designed by Tistory.