운영체제 CS 질문 및 답안

Android Chen·2022년 4월 6일
0
  1. 운영체제란? 간단하게 한줄로 설명해주세요
  • 운영체제란 시스템의 자원과 동작을 관리하는 소프트웨어로서 CPU와 사용자의 중간에서 중재자 역할을 합니다.
  1. 프로세스와 스레드에 대해 설명해주세요
  • 프로세스란 디스크에 메모리가 할당된 하나의 프로그램을 의미하며 스레드는 프로세스 내에서 독립적으로 실행되는 작업의 단위입니다

  • 프로세스는 각자의 메모리 영역을 가지지만 스레드는 메모리 구조에서 스택, 레지스터 영역을 제외한 코드, 데이터, 힙 영역을 공유합니다. 따라서 프로세스간 통신을 위해서는 소켓, 파이프와 같은 IPC기법을 이용해야 하지만 스레드는 힙 영역을 공유하므로 프로세스간 통신보다 스레드간 통신이 좀 더 비용이 적게든다는 특징을 가지고 있습니다.

  1. PCB(Process Control Block)에 대해 설명해주세요
  • CPU는 한번에 하나의 프로세스만 실행할 수 있습니다. 따라서 현재 실행중인 프로세스를 다른 프로세스로 전환해야하는 Context Switching이 일어날 수 있습니다. 이 때, 현재 프로세스의 진행상황과같은 정보를 저장하는 공간이 PCB입니다. PCB에는 프로세스ID, 상태, 카운터 등을 포함하고 있습니다.
  1. 인터럽트가 무엇인가요?
  • 인터럽트란 하드웨어 장치가 CPU에게 어떤 정보를 알려주거나 서비스를 요청해야 하는 경우 발생하는 정보입니다. CPU는 매번 프로그램 카운터가 가리키는 곳의 명령을 수행한 뒤, 인터럽트 라인을 확인하여 인터럽트 라인이 세팅되었는지 확인합니다. 이 때 인터럽트가 발생했으면 프로세스 처리를 잠시 멈추고 인터럽트 처리 루틴으로 이동하여 인터럽트를 처리합니다.

  • 인터럽트는 크게 키보드, 마우스 등의 하드웨어 장치에 의해 발생하는 하드웨어 인터럽트와 소프트웨어 인터럽트가 있습니다. 소프트웨어 인터럽트는 익셉션이나 시스템콜로 인해 발생하게 됩니다.

profile
https://github.com/Userz1-redd

0개의 댓글