백엔드 면접 스크립트 - 운영체제

2022. 10. 21. 19:29·BE Study
반응형

운영체제 관련

1. 프로세스와 스레드의 차이를 설명해 보세요.

멀티 스레드와 멀티 프로세스의 차이

어떠한 운영체제로부터 자원을 할당받은 작업의 단위를 프로세스라 하고 프로세스 안에서 독립적으로 실행되는 하나의 작업 단위를 스레드라고 한다. 이 둘만 본다면 상위 개념으로부터 일부 자원을 할당 받아 작업을 진행한다는 비슷한 성질을 갖고 있습니다. 하지만 멀티 프로세스와 멀티 스레드 개념에서는 큰 차이가 있는데, 우선 멀티 프로세스는 프로세스를 생성할때 자원을 할당하는 시스템 콜이 계속 발생하여 메모리를 많이 사용하지만, 멀티 스레드는 할당된 메모리 내에서 자원을 공유하며 작업이 진행되므로 자원을 효율적으로 관리할수 있습니다. 하지만, 스레드간에는 공유되는 변수를 이용하기 때문에 동시성에 문제가 생길수 있어 프로그래밍 코드를 작성하고, 디버깅하기 까다로운 부분이 있습니다.

 

2. 동기와 비동기의 차이 및 장단점에 대해 설명해 보세요.

동기/비동기는 두 개 이상의 무엇인가가 시간을 맞춘다/안맞춘다로 구분할 수 있습니다.

동기 방식은 메서드 리턴과 결과를 전달받는 시간이 일치하는 명령 실행 방식입니다. 또, 동기 방식은 한 함수가 끝나는 시간과 바로 다음의 함수가 시작하는 시간이 같습니다.

비동기 방식은 여러 개의 처리가 함께 실행되는 방식으로, 동기 방식에 비해 단위시간 당 많은 작업을 처리할 수 있습니다. 단, CPU나 메모리를 많이 사용하는 작업을 비동기로 처리하게 되면 과부하가 걸릴 수 있습니다. 프로그램의 복잡도도 증가하게 됩니다.

블로킹/논블로킹은 동기/비동기와는 다른 관점으로, 내가 직접 제어할 수 없는 대상(IO/멀티스레드)을 상대하는 방법에 대한 분류입니다.

블로킹 방식은 대상의 작업이 끝날 때 까지 제어권을 대상이 가지고 있는 것을 의미합니다. 반면에 논블로킹은 대상의 작업 완료여부와 상관없이 새로운 작업을 수행합니다.

 

동기는 말 그대로 동시에 일어난다는 뜻입니다. 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에 결과로 나와야 합니다. 비동기식은 동시에 일어나지 않으며 요청과 동시에 결과가 일어나지 않습니다. 비동기식은 동기식보다 설계가 복잡하지만 결과가 주어지는 동안 다른 작업을 할 수 있다는 장점이 있다.

 

3. 가상메모리에 대해 설명해 보세요.

메모리 관리 기법중 하나로 프로세스 전체가 메모리 내에 올라오지 않더라도 실행이 가능하도록 하는 기법입니다. 가상메모리를 사용하면 사용자 프로그램이 물리 메모리의 제약에서 벗어나고, 각 프로그램이 더 작은 메모리를 차지하기 때문에 더 많은 프로그램을 동시수행 가능한것처럼 보입니다. 그리고 프로그램을 메모리에 올리고 swap 하는데 IO 횟수가 줄어듭니다. 

 

사전지식 : 컴퓨터 구조, 프로그램이 실행되는 것? 주소바인딩, 스왑영역

 

4. 병렬프로그래밍에 대해 설명 해보세요.

큰 문제를 작게 나누어 동시에 해결할 때 병렬 프로그래밍을 사용합니다. 어떠한 Task를 프로세스 혹은 스레드가 나누어져 처리하기 때문에 처리 속도가 향상된다는 장점이 있다. 하지만 구현 난이도가 올라가고 배분 및 배정에 대한 고민이 필요하다.

 

반응형
저작자표시 (새창열림)

'BE Study' 카테고리의 다른 글

백엔드 면접 스크립트 - Node.js  (0) 2022.12.06
백엔드 면접 스크립트 - Database  (0) 2022.11.15
백엔드 면접 스크립트 - Network  (0) 2022.10.21
브라우저에서 네이버를 검색하고 화면이 출력 될 때 까지 내부적인 동작 (DNS 작동)  (0) 2022.10.13
BE road map  (0) 2022.09.23
'BE Study' 카테고리의 다른 글
  • 백엔드 면접 스크립트 - Node.js
  • 백엔드 면접 스크립트 - Database
  • 백엔드 면접 스크립트 - Network
  • 브라우저에서 네이버를 검색하고 화면이 출력 될 때 까지 내부적인 동작 (DNS 작동)
OverFlowBIN
OverFlowBIN
    반응형
  • OverFlowBIN
    OverFlowBIN BE Tech Blog
    OverFlowBIN
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 전체보기
      • Computer Science
      • BE Study
      • MySQL
      • Algorithm
      • Language
        • TypeScript
        • JavaScript
        • Python
        • JAVA
      • Spring Boot
      • Programing Tool
      • Group Study
      • HTTP
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    이분탐색
    spring boot
    algorithm
    Google Cloud
    MongoDB
    게시판 만들기
    Java
    동작원리
    back-end
    python #내장함수 #자료구조
    bootstrap
    node.js
    기술면접
    이진검색
    백엔드
    일급 함수
    axios
    backend
    thymeleaf
    코딩테스트
    programers
    일급함수
    httpie
    Spring
    javascript
    의존성 주입
    단축평가
    논리연산자
    app engine
    Nullish
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
OverFlowBIN
백엔드 면접 스크립트 - 운영체제
상단으로

티스토리툴바