2023/11/09 첫 모임 숙제

김우진·2023년 11월 9일
0

CS 스터디

목록 보기
1/2

운영체제

운영체제는 무엇이고 어떤 역할을 수행하는지 설명해주세요.

운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 총합이다. 컴퓨터 시스템의 자원들을 효율적으로 관리하며 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공한다.

운영체제가 하는 역할은
1. CPU 스케줄링 및 프로세스 상태 관리 : 어떤 프로세스를 먼저 실행할지 관리
2. 메모리 관리 : 메모리가 작기 때문에(SSd 보다) 이를 효율적으로 사용하기 위한 관리
3. 디스크 파일 관리 : 프로그램 설치시 하드디스크(ssd) 어디에 저장할 지
4. I/O 디바이스 관리 : 키보드, 마우스와 같은 I/O 장비 컨트롤
와 같다.

시분할 시스템에 대해서 설명해주세요.

하나의 컴퓨터 시스템을 복수의 사용자가 동시에 대화식으로 사용하는 이용 형태.
CPU의 처리 시간을 아주 짧게 세분화하여 각 사용자의 프로그램에 할당하여 차례차례 복수의 처리를 실행한다.

다중 프로그래밍 방식은 입출력이 일어날 때만 스케쥴링이 일어나, 입출력 작업이 완료되더라도 해당 프로그램의 작업을 다시 시작할 수 없다는 단점이 있다. 이를 극복하고자 시분할 시스템에서는 '타임슬라이스'라는 타이머 인터럽트를 설정해 입출력 발생 시 외에 타임슬라이스에서도 스케쥴링을 진행한다.

다중 프로그래밍 시스템에 대해서 설명해주세요.

여러 개의 프로그램을 메모리에 적재하여 실행하다 하나의 프로그램이 입출력으로 인하여 대기상태가 되면 다른 프로그램을 실행하는 이용 형태
입출력 장치가 일을 하는 동안 CPU가 쉬는 것이 아니라 다른 프로그램에 대해서 일을 하므로 CPU 사용효율이 일괄처리 시스템에 비해 높다.
어떤 프로그램을 처리할 지는 '스케쥴링'을 통해 해결한다.

대화형 시스템에 대해서 설명해주세요

사용자의 입력에 대하여 즉각적인 피드백을 제공하는 시스템을 말한다.
리눅스, window 등이 여기에 해당된다.

다중 처리기 시스템에 대해서 설명해주세요.

밀접한 통신을 하는 둘 이상의 CPU를 가지는 시스템이으로 단일 처리기 시스템 보다 증가된 처리량, 비용 절감, 증가된 신뢰성 등의 장점을 가지고 있다.

커널

시스템 콜에 대해 설명해주세요.

운영체제가 커널에 접근하기 위한 인터페이스이며 유저 프로그램이 운영체제의 서비스를 받기위해 커널 함수를 호출할 때 운영체제를 거쳐서 호출하도록 설계
유저 프로그램이 운영체제 서비스를 수행할 때 커널모드로 변경되어 수행된다.

커널에 대해 설명해주세요.

커널은 운영체제의 핵심으로 심장과 같은 역할을 한다 메모리에 상주하며 자원에 접근하고 조작하는 기능, 프로세스 관리 기능 등을 수행한다.

커널모드에 대해 설명해주세요.

운영체제가 자원을 응용프로그램으로 부터 보호하기 위해 사용하는 방식인 이중모드의 하나로
자원 접근이 가능해 운영체제의 서비스를 제공받을 수 있는 실행 모드이다.

유저모드에 대해 설명해주세요.

운영체제가 자원을 응용프로그램으로 부터 보호하기 위해 사용하는 방식인 이중모드의 하나로
자원 접근이 불가능해 운영체제의 서비스를 제공받을 수 없는 실행 모드로 커널 영역의 코드를 실행할 수 없는 실행모드이다.

CPU의 I/O 처리방법

폴링에 대해 설명해주세요.

CPU가 주기적으로 디바이스에게 서비스가 필요한지 체크하는 방식
CPU가 디바이스를 확인하는데 주기적으로 CPU 사이클을 사용하게 되므로 서비스를 위한 디바이스 요청이 거의 없을 때 비효율적인 방식이다.
해당 서비스를 체크하는 방식은 Command-ready 비트를 통해서 확인한다.

인터럽트에 대해 설명해주세요.

어떤 신호가 들어왔을 때 CPU를 잠깐 정지시키는 것
여기서 말하는 어떤 신호는
1. 산술 연산오류, 프로세스 오류 (소프트웨어 인터럽트)
2. I/O 디바이스의 사용 (하드웨어 인터럽트)
3. 우선순위가 높은 프로세스의 발생

인터럽트가 발생을 하면 CPU는 진행중인 메모리의 프로세스를 정지시키고 인터럽트 핸들러 함수를 저장해둔 인터럽트 벡터 테이블로 들어감
해당 테이블 을 참고하여 인터럽트 핸들러 함수를 따라 수행해야할 프로세스의 메모리 주소로 이동하여 작업을 진행함

DMA에 대해 설명해주세요.

직접 메모리 접근(Direct Memory Access)는 말 그대로 주변기기에서 CPU의 처리를 거치지 않고 직접 RAM이나 저장장치에 접근해서 필요한 데이터를 가져오는 기능이다.

해당 방식은 속도를 높이고 CPU의 부하를 줄여주는 대신 요청이 유효한 것인지 확인할 수단이 없어 그만큼 보안 위협이 발생할 수 있다.(Thunderclap) 취약점

즉, CPU는 메모리로 가져온 일을 처리하는 일꾼인대 CPU가 해야할 일이 너무 많은 경우 CPU의 일을 보조하는 일꾼으로 생각하면 된다.

동기식 I/O에 대해 설명해주세요.

프로그램이 I/O 요청을 했을 때 해당 I/O 작업이 완료되어야 다음 작업을 할 수 있는 방식
명령 수행 속도는 빠르지만 입출력 연산은 상대적으로 느리다. 기다리는 과정에서 자원 낭비가 발생한다.

비동기식 I/O에 대해 설명해주세요.

CPU의 제어권을 입출력 연산을 호출한 프로그램에 곧바로 다시 부여한다.
I/O 결과와 관련이 없는 연산이 있을 경우 주로 사용한다.
CPU는 I/O결과와 상관없이 처리 가능한 작업부터 처리한다.

0개의 댓글