Q&A 정리중
1)이중 동작 모드란?
두개의 모드(사용자 모드, 커널 모드)
사용자 응용을 위해 실행될때는 사용자 모드, 운영체제로 부터 서비스를 요청하면 커널모드로
변경
시스템 부트시 커널 모드에서 시작하여 사용자 모드에서 사용자 프로세스가 시작
-> 트랩이나 인터럽트 같은 컴퓨터 제어 발생시 사용자 모드에서 커널 모드로 전환
(모드 비트를 0으로)
-> 사용자 프로그램으로 제어를 넘기기 전에 사용자 모드로 다시 전환
(모드 비트를 1로)
===========================
2) 클라이언트-서버 시스템의 계산 서버 시스템과 파일 서버 시스템을 비교하시오.
계산 서버 시스템 : client의 서비스를 요청을 받아 처리하고
결과를 다시 돌려줄 수 있는 인터페이스 제공
예:database 실행 서버
파일 서버 시스템 : client가 파일을 create/update/read/delete 할 수 있는
인터페이스 제공
예: 웹 서버
===========================
3)클러스터형 시스템과 다중처리기 시스템의 차이점은?
다중처리기는 하나의 메모리를 여러 처리기들이 공유하는 방식
하나의 처리기가 고장났을때 다른 처리기가 계속 기능을 유지하므로 신뢰성을 높일수 있음
(p.47 1.6 그림)
클러스터형은 각자 독자적 메모리를 사용한다. 고속 네트워크로 여러개의 컴퓨터가
연결되어 하나의 시스템처럼 보이게 하는 방식이다.
===========================
4) 운영체제의 3가지 주요 목적은?
->컴퓨터 환경관리,프로세스관리,자원관리
===========================5) 운영체제는 인터럽트 기반이다. 인터럽트에 의해 운영체제 수행방법 설명
->운영체제를 적재하는 방법 및 수행을 시작하는 방법을 알아야한다.
목적 달성위해...
1. OS의 커널을 찾아 메모리에 적재
2. OS는 “init”와 같은 첫 번째 프로세스 진행
3. 어떤 이벤트 발생하길 기다린다.
이벤트 발생 후 H/W나 S/W로부터 발생한 인터럽트에 의해 신호가 보내진다
4.CPU가 인터럽트 되면, CPU는 하던 일을 멈추고 즉기 고정된 위치로 실행을 옮긴다.
5.인터럽트 서비스 루틴이 실행됨
6.인터럽트 서비스 루틴이 완료되면 CPU는 인터럽트되었던 연산을 재개한다.
===========================
6) 저장 장치들의 상호 작용은 특정 메모리 주소들에 대한 일련의 적재(load) 또는, 저장(store) 명령을 통해 이루어집니다. 적재 명령과 저장 명령은 각각 무엇일까요?
A: 적재 - 주 메모리로부터 CPU 내부 레지스터로 한 워드를 옮기는 것
저장 - 레지스터의 내용을 주 메모리로 옮기는 것
cf) 스와핑 : 필요에 의해 프로세스를 주 메모리에서 디스크로, 디스크에서 주 메모리로 옮기는 작업.
===========================7) 11.3. 휴대용 시스템
Q: 휴대용 장치 개발자들의 관심사항 3가지를 말해주세요.
A: 물리메모리 - 가상 메모리 기법을 사용하지 않으므로 제한된 물리 메모리 제약 하에 작업
처리기의 속도 - 전력을 적게 소모하는 보다 작고, 느린 처리기를 사용
입출력 문제 - 적은 화면 크기는 출력 선택 사양에 제한이 있다. 웹 잘라내기를 사용한다.
===========================
8) 오픈 소스 운영체제의 장단점은 무엇인가요?
A: 장점 - 소스 코드를 직접 수정하고 컴파일하며 테스트 할 수 있다. 비공개 소스 OS 보다 안전하며, 버그의 수정이 빠르다.
단점 - closed-source OS에 비해 버그가 많다.
===========================
9) 운영체제란 무엇인가?
. 운영체제란 하드웨어 자원을 효율적으로 관리 및 공유할 수 있게하고 다른 응용프로그램이 실행될 수 있도록 서비스를 제공하는 프로그램이다
===========================10) OS 부팅과정을 설명하시오.
부트스트랩 로더가 부트스트랩코드를 메몰에 적재한다. 그리고 부트스트랩코드가 실행가능한 파티션의 os실행 코드를 메모리에 적재한 후 코드를 실행한다. 그 후 OS는 부팅된다.
===========================11) 폰노이만 시스템의 명령어 실행 사이클을 설명하시오.
.메모리에 적재된 실행코드를 cpu로 인출한 후 명령 레지스터에 저장한다. 이어서 명령을 해독하고 피연산자를 레지스터로 저장한다. 이후 명령을 실행한다
===========================12) 이중동작모드를 설명하시오. 그리고 커널모드로 실행할수 있도록 미리작성된 명령을 호출하는것을 무엇이라하는가?
OS가 정상적으로 동작할 수 있도록 사용자와 커널코드를 나눠서 실행할 수 있게하는 모드이다. 사용자모드로 시스템명령을 호출할 경우 소프트웨어인터럽트(트렙)이 발생한다.
//시스템콜
===========================
1)메커니즘과 정책을 설명하고 분리되어야 하는 이유를 설명하세요.
메커니즘: 어떤일을 어떻게 할 것인가를 결정하는것
정책: 무엇을 할 것인가를 결정 하는것
============================
분리되어야 하는 이유: 융통성
-> 정책은 장소나 시간의 흐름에 따라 변경될 수 있는데 정책의 변경에 민감한 메커니즘은
정책마다 메커니즘의 변경을 요구함
============================
2)계층적 접근의 장.단점을 설명하세요
장점 : 구현과 디버깅이 간단하다. 각 층은 하위 수준의 층이 제공하는 연산만을 사용해 구현
하기 때문에 나머지 시스템은 신경쓰지 않고 디버깅 할 수있음
-> 오류 발견 또한 쉬움
단점 : 효율성이 낮음 -> 각 층이 시스템 호출에 오버헤드를 추가하여 실행시간이
오래 걸림
============================
3)가상기계의 장점과 파일 공유 방법 2가지는 무엇인가?
가상기계들끼리 서로 보호되어 바이러스로 다른 가상기계를 손상시킬 수 없음
1: 파일 시스템 볼륨 공유
2: 가상기계들이 네트워크를 구성 -> 가상 통신 네트워크를 통해 정보를 보냄
가상기계 상에서 시스템 개발이 이루어 지면 정규 시스템 동작을 멈추지
않아도 됨
============================
4) 가상머신의 장점과 단점을 설명하시오.(JVM)
가상머신의 장점은 하드웨어와 분리되면서 보안이 강하다.
os를 개발 및 디버깅하기 쉽다.
다양한 환경에서 프로그램을 테스트할 수 있다.
시스템 최적화를 할 수 있고 가상머신을 사용함으로써 시스템 관리가 편해진다.
============================
5) 운영체제 설계시 반드시 고려해야할 사항은 무엇인가?
시스템 설계시 매커니즘과 정책을 구분하는것은 반드시 필요하다. 시스템의 여러 매커니즘은 미리 시스템에 포함시켜 구현해 놓고 각각의 매커니즘이 어떻게 동작하는지에 대한 정책은 사용자가 조절할 수 있게한다.
6) 마이크로커널의 장점과 동적적재모듈의 장점은 무엇인가?
마이크로커널이란 중요한 기능들만 커널에 포함시키고 그외의 모듈은 사용자영역에서 동작하도록 하는 구조이다. 동적적재가능모듈은 사용자가 생성할 수 있고 시스템이 부팅되는 순간 링크되도록 설계된 모듈이다
============================
7) 운영체제에 매개 변수를 전달하기 위한 세가지 방법은?
A 1. 매개 변수를 레지스터 내에 전달한다.
2. 매개 변수가 메모리 내의 블록이나 테이블에 저장되고, 블록의 주소가 레지스터 내에 매개 변수로 전달된다.
3. 매개 변수는 프로그램에 의해 스택에 넣어질 수도 있고, 운영체제에 의해 꺼내진다.
============================
8) 표준 C 라이브러리의 예
표준 C 라이브러리는 시스템 호출 인터페이스를 제공한다.
printf() 함수 호출을 가로채고 운영체제의 필요한 write() 시스템 호출을 부른다.
C 라이브러리는 write()의 반환 값을 받아 이를 사용자 프로그램에게 되돌려준다.
============================
9) 펌웨어의 문제점은?
A 1. RAM에서 실행시킬 때 보다 실행 속도가 떨어진다.
2. 가격이 비싸고 용량이 크지 않다.
============================
10) 파일과 장치를 조작할 때 동일한 시스템 호출 인터페이스를 사용하는 것의 장점과 단점은?
11) 명령어 해석기의 목적은 무엇이지? 왜 그걸 커널로 분리하는걸까?
12)모듈화커널방식과 계층적인 방식의 차이점과 비슷한점은 뭐지? 헷갈려
13) just-in time 방식은 java에서 어떤 원리로 쓰이는거죠?
14)다수의 프로그램을 수행하는 FreeBSD 에 대해서 설명해줘요 어떤원리인지.
============================