kakaotech-25 / cs-plant-interview

cs 의 씨앗을 심기 위한 레포지토리 🌱
2 stars 0 forks source link

[OS] 파일 시스템 #4

Closed JaeJunday closed 3 months ago

JaeJunday commented 3 months ago

예상 면접 질문

step 1. 파일 시스템의 기본적인 역할은 무엇인가요? 만약 알고있는 파일시스템이 있다면 설명해주세요.

step 2. 리눅스 운영체제의 FD(파일디스크립터)에 대해 아는대로 설명해주세요.

step 3. 프로젝트를 진행하며 처했던 문제를 파일시스템의 개념을 활용해 적극적으로 해결한 경험을 말해주세요.

JaeJunday commented 3 months ago
  1. 운영체제가 문서, 이미지 등의 데이터를 파일로 저장하고 불러오는 방법입니다.
  2. 리눅스에서는 파일,디렉토리,소켓 모두 파일디스크립터로 관리됩니다. 0은 입력, 1은 출력, 2는 에러로 예약되어있으며 파일은 3번부터 할당됩니다. 프로세스당 65,536(2^16)개의 파일디스크립터를 가지고 있습니다. 소켓의 포트번호가 65536번까지인 이유도 동일합니다.
  3. ex) nginx를 구현할 때 유닉스 파이프의 입출력작업을 구현하며 파이프를 닫지 않아 lsof명령어로 디버깅 했던 경험이 있습니다. 직접 PIPE의 번호를 따라가서 같은 파이프번호를 두 프로세스가 한번에 점유하는것을 확인했고 코드를 수정할 수 있었습니다.

ex) 서버로그중 정상출력 로그가 에러로그가 섞여 나와서 로그를 제대로 출력하기 힘들었던 적이 있었습니다. 2번 파일디스크립터가 에러용도로 예약되어있다는걸 깨닫고 코드에서 catch 문의 에러는 전부 STDERR로 정상 출력 log문은 전부 STDOUT 표준출력으로 분류하였습니다. 그 후 로그파일로 뽑아서 디버깅했던 기억이 있습니다.

LEE-DA-EUN commented 3 months ago
  1. 파일 시스템의 기본적인 역할은 무엇인가요? 만약 알고있는 파일시스템이 있다면 설명해주세요.

    • 파일시스템이란 데이터를 저장하는 방법을 말합니다. 문서를 저장할 때 하드 디스크나 SSD에 어떻게 저장되고 나중에 어떻게 불러올 수 있는지가 파일시스템의 역할이다.
    • 파일시스템은 데이터를 효과적으로 저장하고, 필요할 때 쉽게 찾아 쓸 수 있게 해준다. 일반적으로 디렉터리와 파일로 구성된다.
  2. 리눅스 운영체제의 FD(파일디스크립터)에 대해 아는대로 설명해주세요.

    • FD는 운영체제에서 파일, 소켓, 파이프, 디렉토리, 프로세스 등 다양한 리소스를 다룰 때 사용하는 일종의 핸들이다. FD는 사실상 숫자로, 프로세스가 운영체제에 의해 열려 있는 파일이나 리소스를 참조할 수 있게 한다. 예를 들어 파일을 열었을 때 운영체제는 그 파일을 나타내는 FD를 반환하고, 이를 통해 파일을 읽거나 쓰는 작업을 수행한다.
  3. 프로젝트를 진행하며 처했던 문제를 파일시스템의 개념을 활용해 적극적으로 해결한 경험을 말해주세요.

    • 파일시스템의 개념을 활용하여 문제를 해결했던 경험이 없습니다.
rimeir commented 3 months ago
  1. 파일시스템은 데이터를 파일 단위로 저장하고 디렉토리 구조로 조직화합니다. 데이터의 접근 권한 및 파일을 관리하고 저장 공간을 효율적으로 관리합니다. 또한 저장된 데이터의 무결성을 보장합니다.
  2. 운영체제에서 다양한 리소스를 다룰 때 사용하는 핸들로 프로세스가 운영체제에 의해 열려있는 파일이나 리소스를 참조합니다.
  3. (예시로 대체) EC2 인스턴스에 디스크를 추가하고 적용하기 위해 파티션과 파일 시스템을 확장하여 추가된 디스크 공간을 인식하여 사용할 수 있도록 했습니다.
msung99 commented 3 months ago
  1. 파일 시스템(File System)은 운영체제에서 데이터를 저장하고, 조직화하고, 관리하는 구조와 규칙을 정의하는 시스템입니다.
  2. 파일 디스크립터(File Descriptor, FD)는 리눅스 및 유닉스 계열 운영체제에서 파일이나 입출력 자원에 대한 추상적 핸들 또는 참조를 나타내는 정수 값입니다. 운영체제는 이 파일 디스크립터를 사용하여 파일, 소켓, 파이프 등과 같은 자원에 대한 액세스를 관리합니다.
  3. (저는 아직 없음)🤔