4.4 Describe the actions taken by a kernel to switch context between processes.(프로세서들간 문맥교환을 하기 위해 커널이 행하는 행위를 설명하시오.)답) Switching the CPU to another process requires saving the state of the old process and loading the saved state for new process.(중앙처리장치를 다{운영체제_김일민 교수님 0071261(야)조수영-------------------------------------------------------------------------------------른 프로세스로 넘겨주기 위해서는 지금까지의 프로세스의 상태를 보관하고 새로운 프로세스의 보관된 상태를 다시 적재하는 일이 필요하다)4.6 The correct producer-consumer algorithm in Section 4.4 allows only n-1 buffers to be full at any one time. Modify the algorithm to allow all buffers to be utilized fully.(4.4절의 생산자-소비자 알고리즘은 버퍼에 n-1개의 항목이 들어간 경우 완전히 찬 경우이다. 이 알고리즘에서 상기 버퍼를 완전히 사용할 수 있게 수정하시오)답) < Producer Process>>item nextProduced;while (1) {while (((in + 1) % (BUFFER_SIZE + 1)) == out); /* do nothing */buffer[in] = nextProduced;in = (in + 1) % (BUFFER_SIZE + 1);}
Exercises 11.1 What are the three main purposes of an operating system?{운영체제_연습문제[1장,2장,3장] 0071261 조수영-------------------------------------------------------------------------------------(운영 체제의 3가지 주요 목적은 무엇인가?)First, execute user programs and make solving user problems easier.Second, make the computer system convenient to use.Third, make users use the computer hardware efficiently.(첫째, 사용자 프로그램을 실행시키고 사용자 문제들을 좀더 쉽게 해결하게 한다.둘째, 컴퓨터 시스템을 사용하기 쉽게 만든다.셋째, 컴퓨터 하드웨어를 효율적으로 사용하게 한다.)1.3 What is the main advantage of multiprogramming?(멀티프로그래밍의 주요 장점은 무엇인가?)Multiprogramming improves CPU use by organizing jobs so that the CPU always has one to execute.(멀티프로그래밍은 CPU가 항상 하나의 프로그램을 실행하도록 작업들을 조작함으로써 CPU 사용을 늘린다.)Exercises 22.5 Which of the following instructions should be privileged? (a,c,d)(다음 명령어 중 무엇이 특권 받아야 하는가?)a. Set value of timer. (타이머 값 설정)b. Read the clock. (클럭 읽기)c. Clear memory. (메모리 삭제)d. Turn off interrupts. (인터럽트 중단)e. Switch from user to monitor mode. (사용자 모드에서 모니터 모드로 전환)For example, dual mode, privileged instructions; I/O instructions and stop instructions, memory protected timer interrupt are basic building blocks used by operating systems to achieve correct operation.(이중 모드, 특권 명령들; I/O 명령어와 중단시키는 명령어, 기억장치 보호, 타이머 인터럽트가 기본 컴퓨터 구조를 형성함으로써, 시스템의 정확한 동작을 보장할 수 있게 된다.)2.6 Some computer systems do not provide privileged mode of operation in hardware. Is it possible to construct a secure operating system for these computers? Give arguments both that it is and that it is not possible.(어떤 컴퓨터 시스템들은 하드웨어상의 동작의 특권 된 상태를 제공하지 않는다. 이런 컴퓨터들에게 안전한 운영 체제를 구성하는 것이 가능한가? 가능한 것과 가능하지 않은 것들 증명해라.)The operating system must ensure correct operation of the computer system. To prevent user programs from interfering with the proper operation of the system, the hardware has two modes; user mode and monitor mode. Various instructions, such as I/O instructions and halt instructions are privileged, and can be executed in only monitor mode. The memory in which the operating system resides must also be protected form modification by the user. A timer prevents infinite loops. These facilities; dual mode, privileged instructions, memory protected timer interrupt are basic building blocks used by operating systems to achieve correct operation.(운영체제는 컴퓨터 시스템의 정확한 동작을 보장해야 한다. 사용자 프로그램이 시스템의 정상적인 동작을 방해하지 못하도록 하기 위해, 개발자는 두 가지 모드; 사용자 모드와 모니터 모드를 갖는 하드웨어로 수정한다. 여러 가지 명령, 예를 들어, 입출력 명령과 중지 명령은 특권 명령으로서 모니터 모드에서만 실행할 수 있다. 또 운영체제가 저장되어 있는 기억 장치는 사용자에 의한 수정으로부터 보호해야 한다. 타이머는 무한 루프를 방지한다. 이러한 변경; 이중 모드, 특권 명령들, 기억장치 보호, 타이머 인터럽트가 기본 컴퓨터 구조를 형성함으로써, 시스템의 정확한 동작을 보장할 수 있게 된다.)Exercises 33.1 What are the five major activities of an operating system in regard to process management?(프로세스 관리에 관하여 운영 체제의 주요 5가지 활동은 무엇인가?)First, creating and removing both user and system processes.Second, suspending and resuming processesThird, process synchronization.Fourth, process communication.Fifth, deadlock handling(첫째, 사용자와 시스템 프로세스들을 생성하고 종료되면 삭제한다.둘쩨, 프로세스들을 잠깐 중지시키고 중단된 것을 다시 시작시킬 시킨다.셋쩨, 프로세서가 동시에 일어나는 것에 대한 수단을 제공한다.넷째, 프로세스들간의 통신 수단을 제공한다다섯째, 두 개의 작업을 동시에 진행할 때 발생하는 교착상태를 제공한다.3.2 What are the three major activities of an operating system in regard to memory management?메모리 관리에 관하여 운영체제의 3가지 활동은 무엇인가?First, keeping track of which parts of memory are currently being used and by whomSecond, deciding which processes are to be loaded into memory when memory space becomes availableThird, allocating and deallocating memory space as needed
연 습 문 제컴퓨터구조_김성동 교수님 0071261(야) 조수영-------------------------------------------------------------------------------------1.1 아래에 열거된 컴퓨터의 주요 구성 요소들의 기능을 설명하여라.(1) CPU1) 중앙 처리 장치(CPU)는 흔히 사람의 뇌(腦)에 비유되는데 사람이 어떤 상황이나 사물을 판단하여 그에 대한 반사 작용으로 감정을 느끼거나 신체를 움직이듯이 컴퓨터는 중앙 처리 장치를 통하여 자료의 입력과 처리, 출력 등의 모든 작업들을 총괄한다.2) 중앙 처리 장치는 컴퓨터의 각 부문을 제어하며 입력된 자료들을 처리하기 위해 각종 연산 작업을 한다.3) 크게 제어장치와 연산장치로 구분되는데 제어장치는 컴퓨터가 올바로 일을 처리할 수 있도록 명령하고 통제하는 일을 하며, 연산장치는 입력된 데이터의 산술연산, 논리연산, 관계연산 등의 작업을 하는 장치이다.(2) 기억장치컴퓨터에서 처리하는 각종 데이터나 계산과정을 임시적 혹은 영구적으로 기억하거나 저장하는 장치다. 기억장치는 크게 다음과 같이 주기억장치와 보조기억장치로 나누어진다. 어떤 프로그램을 실행시킨다고 했을 때 실행과정이나 계산, 처리, 과정 등은 임시적으로나마 주기억 장치의 하나인 RAM(Random Access Memory)에 보관되어 작업되며, 그 결과는 보조기억장치인 플로피디스크나 하드디스크 등에 보관된다.(3) 보조저장장치데이터를 고속으로 처리하기 위해서는 주기억장치의 기억 용량은 가능한 커야 하지만 주기억장치는 가격이 높기 때문에 당장 필요하지 않은 정보를 기억시켜 놓게 되면 주기억소자가 가격이 낮다 하더라도 주기억장치의 가격은 보조기억장치에 비해 대단히 비싸다. 따라서 대량의 데이터는 보조기억장치에 기억시켜 두고 필요할 때 주기억장치로 옮겨 데이터를 처리한다. 보조기억장치에는 자기 디스크, 자기 드럼, 자기 테이프, 플로피 디스크 등이 있다.자기 디스크(Magnetic Disk)는 여러 개의 디스크가 겹겹이 쌓인 형태로 기억 매체를 이루고 있으며 얇은 자성막이 각 디스크의 양면에 입혀져 있어 구동 장치에 의해 회전을 하게 되면 헤드들이 자성 물질이 입혀진 표면에 판독/기록을 한다.자기 드럼(Magnetic Drum)은 대량의 데이터를 낮은 경비에 저장을 하고, 가능한 한 짧은 액세스 속도를 갖는 최초의 장치들 중 하나로서 구성은 하나의 원통으로 이 원통 옆 표면에 자기 코어에 사용된 물질과 유사한 자기 이력을 갖는 자성 물질로 얇게 덮여 있고 여러 개의 헤드들이 드럼의 표면을 따라 놓여 있다플로피 디스크(floppy disk)는 산화철 화합물로 덮여져 있는 폴리에시트 필림으로 이루어져 있으며 보호용의 플라스틱 자켓 내부에는 한 장의 디스크가 들어 있어서 자유롭게 회전하도록 되어 있고 플로피 디스크 드라이브에는 판독/기록 헤드가 들어 있어 휴대 및 이동을 간편하게 할 수 있도록 고안된 것이다. 표준크기로는 8인치 이지만 요즘에는 3.5"와 5.25"가 가장 많이 쓰이고 있다. 단점으로는 한 장의 디스크이기 때문에 소용량의 자료밖에 저장할 수 없다는 것이며, 휴대 및 이동중에 파손될 우려가 많다는 점이다.자기 테이프(Magnetic Tape)는 자기 테이프, 데이트 이동 장치, 판독 및 기록 시스템, 연결 및 완충 장치들로 구성되어 있는데 자기 테이프는 자성을 갖고 있는 철분의 물질이 셀룰로이드로 된 긴 테이프 표면에 덮여 있는 것을 말한다.(4) 입출력장치1) 입력장치사용자가 원하는 자료를 처리하고자 할 때 그 작업에 해당하는 각종 명령어나 자료들을 컴퓨터 내부로 입력하는 장치다. 대표적인 입력 장치로는 키보드, 마우스, 스캐너 등이 있다.① 키보드(Keyboard)ㅇ 사용자가 명령어나 자료를 입력할 수 있는 표준 입력 장치이다.ㅇ 키보드의 종류는 84키, 86키, 101키, 103키 윈도우 환경에 적합하게 만든 106키 등이 있다.② 마우스(Mouse)ㅇ 키보드의 단점을 보완할 수 있는 입력장치로서 키보드로 처리하기 힘든 그래픽 작업등에 많이 사용된다.ㅇ 마우스의 종류는 구동 방식에 따라 볼 마우스(Ball Mouse), 광마우 스(Optical Mouse)등으로 구분된다.③ 스캐너(Scanner)ㅇ 사진이나 그림 등의 정보를 컴퓨터로 읽어들여 컴퓨터가 처리할 수 있는 그래픽 정보로 변환하는 장치이다.ㅇ 종이 위의 정보를 컴퓨터로 읽어 들일 때 사용하며 손에 들고 사용 하는 핸드-헬드(Hand-held)형과 복사기 같이 페이지 단위로 읽어들 이는 페이지 스캐너(Page Scanner)가 있다.2) 출력장치사용자가 입력장치를 통해 입력한 자료의 결과를 보여주는 장치로서 가장 많이 사용하는 출력장치로는 모니터, 프린터, XY플로터 등이 있다.① 모니터(Monitor)ㅇ 흔히 볼 수 있는 TV화면과 비슷하게 생긴 장치로서 컴퓨터 내부의 비디오 카드를 통해 전송되는 영상 신호를 나타내는 장치이다. 입 력된 자료의 진행 결과나 프로그램의 실행 결과를 화면을 통해서 볼 수 있도록 하는 장치이다.ㅇ 모니터의 종류는 크게 단색만 표현할 수 있는 모노크롬 모니터와 컬러(Color) 모니터가 있다.② 프린터(Printer)ㅇ 컴퓨터를 이용한 작업처리 결과를 종이에 인쇄하는 장치이다.ㅇ 인쇄 방식에 따라 도트 메트릭스 프린터, 잉크젯 프린터, 레이저 프 린터 등이 있다.ㅇ 도트 메트릭스 프린터는 타자기와 비슷하게 먹줄을 프린터 헤더가 충격을 가함으로써 인쇄하는 방식이고, 잉크젯 프린터와 레이저 프 린터는 단어의 뜻 그대로 각각 잉크와 레이저 빔을 이용하여 인쇄하 는 방식이다.1.2 '어셈블리 프로그래머는 컴퓨터의 내부 구조를 알고 있어야 프로그램을 작성할 수 있다'고 말하는 이유를 설명하라.고급언어들은 어느 컴퓨터에서 사용되든 거의 동일하지만, 기계어는 CPU마다 서로 다르다. 즉, CPU의 내부 구조에 따라 그 하드웨어가 이해할 수 있는 언어도 달라지는 것이다. 그러한 언어상의 차이를 해결하기 위하여 고급 언어와 기계어 사이에는 각 CPU 고유의 중간 언어가 존재하는데, 이 언어를 어셈블리 언어라 부른다. 고급-언어 프로그램이 어떤 컴퓨터에서 수행되기 위해서는 일단 어셈블리 프로그램으로 번역되고, 그런 다음에 기계 코드들로 번역된다.