[1회차] 운영체제 모의면접 스터디 대비

cosmos-JJ·2023년 9월 15일
0

CS 스터디

목록 보기
1/6
post-thumbnail

면접 예상 질문 대비

운영체제 개요

❓ 운영체제는 무엇이고 어떤 역할을 수행하는 지 설명

💭 운영체제는 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램입니다. 운영체제의 자원관리와 자원보호, 그리고 하드웨어 인터페이스 및 사용자 인터페이스를 제공하는 역할을 수행합니다.


❓ 시분할 시스템

💭 시분할 시스템은 사용자의 관점이 반영된 다중 프로그래밍입니다. 각각의 사용자가 시스템 이용에 있어서 연속성을 유지하고 다수의 사용자가 하나의 컴퓨터 시스템을 공유할 수 있습니다 시분할 시스템은 모든 작업이 동시에 처리되는 것처럼 보인다는 장점이 있지만, 시스템 내에 많은 양의 작업이 공존할 경우, 중요한 작업이 일정 시간안에 끝나는 것을 보장하지 못하는 단점이 있습니다.


❓ 다중 프로그래밍 시스템(multi-programming system)

💭 다중 프로그래밍 시스템은 하나의 CPU로 여러 작업을 동시에 실행하는 기술입니다. 다중 프로그래밍의 목적은 여러 가지 시스템 자원은 효율적으로 이용하는 것입니다.


❓ 대화형 시스템(interactive system)

💭 대화형 시스템은 컴퓨터와 사용자의 대화를 통해 작업이 이루어 지는 것을 말합니다. 작업 중간에 사용자가 입력을 하거나 사용자에게 중간 결과값을 보여줄 수 있고, 프로그램이 진행되는 도중에 사용자로부터 입력을 받을 수 있어 작업의 흐름을 바꾸는 것도 가능합니다.


❓ 다중 처리기 시스템(multi-processor system)

💭 다중 처리기 시스템은 2대 이상의 CPU를 두고 각각 그 업무를 분담하여 처리하는 방식입니다. 다중 처리기의 종류에는 주종 관계없이 모든 프로세서들이 동등한 관계로 동작하는 대칭형 다중처리와 프로세서들간에 주종관계가 있는 비대칭형 다중처리가 있습니다. 대칭형 다중처리는 자원을 프로세서 간에 동적으로 공유할 수 있어 작업 분산을 통해 부하를 낮출 수 있다는 특징이 있으며, 비대칭형 다중처리는 자료 공유의 필요성을 감소시키고 마스터 프로세서가 전체 시스템 성능을 저하시킬 수 있다는 단점이 있습니다.



컴퓨터 시스템 동작원리

❓ 시스템 콜

💭 시스템 콜은 운영체제 서비스를 제공받기 위해 커널 모드로 전환하는 방법입니다. 시스템 콜의 작동은 먼저 시스템 호출을 발생시키는 명령어를 실행하고 CPU가 지금까지의 작업을 백업합니다. 그 후 커널 영역 내에 시스템 호출을 수행하는 코드를 실행하고 실행이 끝나면 기존에 실행하던 응용프로그램으로 복귀합니다.


❓ 커널

💭 커널은 운영체제의 핵심적인 기능을 담하는 부분으로 핵심 기능으로는 첫번째, 프로세스에 CPU를 배분하고 작업에 필요한 제반 환경을 제공합니다. 두번째는 프로세스의 작업 공간을 배치하고 실제 메모리보다 큰 가상공간을 제공합니다. 세번째는 데이터를 저장하고 접근할 수 있는 인터페이스를 제공합니다. 네번째는 필요한 입력과 출력 서비스를 제공합니다. 마지막으로는 공동 작업을 위한 각 프로세스 간 통신 환경을 지원합니다.


❓ 커널모드란

💭 커널 영역의 코드를 실행할 수 있는 모드로, CPU가 커널모드로 명령으로 실행하면 자원에 접근하는 명령어를 비롯한 모든 명령어를 실행할 수 있습니다.


❓ 유저모드란

💭 커널 영역의 코드를 실행할 수 없는 모드로, 사용자 모드로 실행중인 CPU는 입출력 명령어와 같이 하드웨어 자원에 접근하는 명령어를 실행할 수 없기 때문에 사용자 모드로 실행되는 일반적인 응용프로그램은 자원에 접근 할 수 없습니다.


❓ 폴링

💭 폴링은 초기 컴퓨터 시스템에 적용된 방식으로 CPU가 직접 입출력 장치에서 데이터를 가져오거나 내보내는 방식입니다. 폴링은 CPU가 입출력장치의 상태를 주기적으로 검사하여 일정한 조건을 만족할 때 데이터를 처리합니다. 폴링은 CPU 작업 부하로인해 효율이 떨어지기 때문에 오늘날의 대체 방식으로 인터럽트가 생겼습니다.


❓ 인터럽트

💭 인터럽트는 CPU의 정상적인 작업을 방해하는 신호입니다. 인터럽트는 동기와 비동기로 나누어지는데 동기는 CPU에 의해 발생하는 인터럽트이며, 예외적인 상황을 마주쳤을 때 발생합니다. 비동기 인터럽트는 하드웨어 인터럽트라고도 부르며 주로 입출력장치에 의해 발생하는 인터럽트입니다.

1. 입출력장치 ➡ CPU 인터럽트 요청 신호를 보냄
2. CPU는 실행 사이클이 끝나고 명령어를 인출하기 전 인터럽트 여부 확인
3. CPU는 인터럽트 요청을 확인하고 인터럽트 플래그를 통해 현재 인터럽트를 받아들일 수 있는 지 여부 확인
가능하다면 ➡ 지금까지 작업 백업
4. CPU는 인터럽트 벡터를 참조하여 인터럽트 서비스 루틴 실행
5. 인터럽트 서비스 루틴이 끝나면 백업해 둔 작업을 복구하여 실행 재개

❓ DMA

💭 인터럽트 방식을 사용하면서 CPU가 아닌 입출력 관리자가 데이터의 입력을 받게 되었는데 입출력 관리자는 CPU가 요청한 데이터를 메모리에 가져다 놓으면서 메모리에 접근 해야하게 됩니다. 하지만 CPU만이 메모리 접근 권한을 가지고 있기 때문에 CPU의 허락없이 메모리에 접근할 수 있는 권한이 필요해 졌고 이 권한을 직접 메모리 접근 DMA라고 합니다.


❓ 동기식 I/O

💭 Blocking I/O란 유저 프로세스가 I/O작업을 호출했을때, I/O작업이 진행되는 동안 자신의 작업을 중단하고 I/O작업이 끝나기 까지 대기하는 방식입니다.


❓ 비동기식 I/O

💭 Non Blocking I/O란 유저 프로세스가 I/O작업을 호출했을때, I/O작업이 진행되는 동안 자신의 작업을 중단하지 않고 I/O작업 완료 시 즉시 리턴을 수행 및 수행 후 이어서 다른 일을 수행할 수 있도록 하는 방식입니다.

profile
🤍도전하는 건 즐거워요🤍

0개의 댓글