이 영역을 누르면 첫 페이지로 이동
codesche's blog 블로그의 첫 페이지로 이동

codesche's blog

페이지 맨 위로 올라가기

codesche's blog

기술 면접 주요 질문 답변 정리(5문항)

  • 2022.12.25 14:42
  • Study Cafe/기술면접

1. 프로세스 구조에 대해 가능한 상세하게 설명하시오.

 

프로세스는 일반적으로 코드, 데이터, 힙, 스택 영역으로 구성되어 있습니다.

코드 영역은 프로그램 코드가 저장되고,

데이터 영역은 전역 변수등이 저장됩니다.

힙 영역은 동적으로 할당된 메모리를 위한 공간이고

스택 영역은 함수 실행을 위한, 지역 변수등이 저장됩니다.

 

 

2. 프로세스간에 어떤 기술을 사용해서 통신하는지, 왜 해당기술을 사용해서 통신해야 하는지를 쓰레드와 비교해서 설명하시오.

프로세스간에는 주소공간이 분리되어 있습니다. 그러므로 프로세스간 통신을 위해서는 IPC라고 하는 별도의 기술을 사용해야 합니다.

쓰레드의 경우는 하나의 프로세스 주소공간 안에서 코드/데이터/힙 공간을 공유하기 때문에, 별도의 통신 기술이 필요하지 않습니다.

 

 

3. 프로세스와 쓰레드의 차이점에 대해 설명하시오.

프로세스는 운영체제(OS)로부터 자원을 할당받아 실행하고, 쓰레드는 프로세스로부터 자원을 할당받아 실행합니다. 하나의 프로세스 안에서 쓰레드는 프로세스 코드/데이터/힙 공간을 공유하지만, 해당 쓰레드만의 스택을 가지고 동작합니다. 그래서 하나의 프로세스 안에서 생성된 쓰레드간에는 별도 기술을 쓰지 않고도 데이터 공유가 가능합니다.

 

 

4. 쓰레드 동기화란 무엇이며 왜 사용해야 하는지 사례를 들어 설명하시오.

쓰레드간 공유한 데이터를 읽고 쓸 경우, 쓰레드간 실행 순서에 따라 공유한 데이터를 읽고 쓰는 작업이 누락될 수 있으며, 이로 인해 쓰레드의 비정상적인 동작을 야기할 수 있습니다. 쓰레드 동기화란 이러한 문제를 막기 위해 여러 쓰레드가 동시에 공유한 데이터를 읽고 쓰지 못하도록 하는 기술입니다.

 

 

5. 멀티 태스킹에 대해 간결하게 설명하시오.

단일 CPU에서, 여러 응용 프로그램이 동시에 실행되는 것처럼 보이도록 하는 스케쥴링 기법입니다.

 

'Study Cafe > 기술면접' 카테고리의 다른 글

자료구조/알고리즘, 컴파일러  (1) 2023.04.17
Spring  (0) 2023.04.09
데이터베이스 + JPA  (0) 2023.03.27
네트워크  (0) 2023.03.16
백엔드 개발 면접 질문 주요 리스트(1)  (0) 2023.01.30

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • Spring

    Spring

    2023.04.09
  • 데이터베이스 + JPA

    데이터베이스 + JPA

    2023.03.27
  • 네트워크

    네트워크

    2023.03.16
  • 백엔드 개발 면접 질문 주요 리스트(1)

    백엔드 개발 면접 질문 주요 리스트(1)

    2023.01.30
다른 글 더 둘러보기

정보

codesche's blog 블로그의 첫 페이지로 이동

codesche's blog

  • codesche's blog의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (76)
    • Algorithm (15)
      • 백준 (3)
      • 프로그래머스 (10)
      • inflearn 알고리즘(Java) (2)
    • 블로그소개 (1)
    • Back-End (11)
      • Java (10)
      • SpringBoot (1)
    • Database (2)
      • MySQL (0)
      • MariaDB (1)
      • Redis (0)
      • 개념, 이론 (1)
    • Front-End (0)
      • html, css, javascript (0)
    • Git (2)
    • 알고리즘 지식 (11)
      • 자료구조 (11)
    • Study Cafe (21)
      • 기술면접 (6)
      • Clean Code 스터디 (14)
      • CS 스터디 (0)
      • 개발용어 (1)
    • 주간 에세이 (10)
    • DevOps (3)
      • 배포, Front&Back 연동 (1)
      • AWS (0)
      • Docker (1)
      • 이론 (1)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • 자바 변수
  • 자료구조
  • 자바 기초
  • git commit
  • java
  • 클린코드
  • 주간에세이
  • 개발자 현실

나의 외부 링크

정보

The Code의 codesche's blog

codesche's blog

The Code

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © The Code. Designed by Fraccino.

티스토리툴바