|
제가 신지식에 올라온 질문에 대한 답변으로 작성한 내용입니다.
신지식의 내용을 가져오기에 고민은 되었지만 정보처리를 공부하시는 회원님께 도움이 될 수 있는 부분이어서 저의 답변을 기재하여 두겠습니다.
무지개 올림
운영체제와 관련된 여러 질문에 대한 답변
아마도 신지식의 회원님께서 바라는 바는 중간고사에 관련된 예상문제 답변으로 생각됩니다.
학생들의 공부를 돕기위해 2시간 이상의 시간을 할애하여 답변을 하기는 하였지만 광범위한 영역이라 제대로 답변을 올렸는가 의구심이 생깁니다.
질문이 상당히 길어 아래 제가 올린 답변 만을 기재하여 두겠습니다.
무지개(신지식 닉네임 : 건시스템)의 답변...
반갑습니다.
질문의 범위가 광범위하네요.
질문에 대한 답을 정리하여 보겠습니다.
추가로...
질문하신 회원님은 아마 중간고사 예상문제의 답을 구하는 것으로 생각되는데 문제를 출제하신 교수님께서 학생들의 정보처리 분야의 자격증 취득을 돕기위한 의도에서 출제를 하는의도가 있으신 것으로 보여집니다.
교수님의 의도에 맞게 최선의 노력을 하시는 것이 어떨까 하는 생각이 듭니다.
그리고, 아래 질문의 개연성에 대한 지적은 출제하신 교수님의 강의를 수강하신 학생분들께서 파악하고 계실 것이며 이러한 상황을 예측하시고 교수님께서 문제를 제시한 부분이므로 답변을 한 저로써는 정확한 의도 파악이 힘들다는 것을 의미합니다.
많은 질문을 2시간 정도를 할애한 답변자의 성의를 생각해서라도~
열공하세요. ^^/
1. 운영체제의 목적과 용도를 요약 설명하세요.
컴퓨터 운영체제에 대한 질문으로 생각되는데 범위가 상당히 광범위하다는 생각이 듭니다.
곧, 접근 방향 및 기준이 어느정도 결정되어야 할 것 같습니다.
이러한 관점에서 질문하신 분의 의도를 나름대로 분석하여 답변을 기재하는 점 양해를 구합니다.
먼저 운영체제는 컴퓨터시스템에 관련된 하드웨어, 소프트웨어, 데이터(정보)통신 등과 사용자 간의 효율적인 인터페이스 목적이 기본입니다.
이때 사용자 관점에서 편의성을 제공하는 것이 기본이 되어야 합니다.
이러한 관점에서 접근하면 컴퓨터 운영체제의 목적은 "사용자와 컴퓨터 간의 인터페이스 역할을 수행하는 소프트웨어로 사용자가 컴퓨터시스템을 원할하게 활용할 수 있는 환경을 제공하기 위한 소프트웨어"로 축약하여 표현할 수 있습니다.
반면에 운영체제 관점에서(신이 인간을 창조하였는지는 알 수 없지만 컴퓨터 시스템은 사람이 창조하였습니다.) 접근하면 컴퓨터 운영체제는 컴퓨터에 관련된 하드웨어, 소프트웨어, 인간(계정에 관련된 사항 등)을 전반적으로 관리함으로써 더욱 효율적인 서비스를 사용자에게 제공하게 됩니다.
2. 시분할 시스템에 대해 간략하게 설명하세요.
컴퓨터의 효율적인 활용 방안 중의 하나로 제작된 운영체제 기법입니다.
시간을 쪼갤 수가 있을까요?
일반적으로 시간을 쪼갠다는 표현은 시간차를 이용한다는 것이겠지요.
각설하고 답변을 올리겠습니다.
컴퓨터시스템(특히 메모리 계층도 측면)의 구성에서 가격대비 효율성을 극대화하기 위해 일반적으로 입출력 장치 보다 처리기(processor; 일반적으로 CPU(Centrol Porcessor Unit)의 속도가 훨씬 빠른 것이 기본입니다.
이 경우 A라는 사용자가 입력장치를 통하여 작업을 CPU에 의뢰하고 그 결과를 출력장치로 반환 받기도 전에 CPU는 휴무시간(Idle Time)을 가지게 될 확률이 높습니다. 이 때 B라는 사용자가 작업을 의뢰하고 또한 C라는 사람도 작업을 의뢰하는 등 실제적으로 CPU에 순차적으로 여러 사용자가 작업을 의뢰하고 CPU는 이러한 여러 일거리를 시간차에 의해 처리하지만 결과를 반환받는 사용자들은 CPU의 빠른 일처리로 인해 한대의 컴퓨터가 여러 사용자의 일거리를 동시에 처리하여 준다는 생각을 가지게 되는 관점의 운영체제 시스템을 시분할시스템(Time Sharing System) 이라 볼 수 있습니다.
위에 기재한 답변은 시분할시스템에 관련된 기본개념입니다.
이러한 기본적인 개념을 바탕으로 여러 기능을 복합적으로 추가하여 여러 사용자가 한대의 컴퓨터를 공유할 수 있는 다사용자(Multi User) 환경을 제공하는 근간이 되는 운영체제 시스템을 시분할 시스템이라 할 수 있습니다.
3. 프린트를 위해 이미 읽혀진 데이터를 ( )에 보관해 두었다가 순서대로 프린터로 보내준다.
아마 답안은 스풀(Spool)로 생각됩니다.
더욱 구체적인 질문이었으면 좋을뻔 했는데~
일단 스풀은 보조기억장치(일반적으로 하드디스크)의 일부분을 할애하여 입력 또는 출력할 내용을 기록하여 둔 후 CPU가 쉬는 틈틈히 입력 또는 출력작업을 수행하는 하기 위한 것을 의미하는데 이러한 방법을 스풀링(Spooling)라고 합니다.
스풀링이 일반적으로 적용되는 경우는 프린터 작업인데 굳이 보조기억장치에 비해 속도가 빠른 주기억장치의 공간을 할애하지 않더라도 프린터의 속도가 크게 빠르지 않으므로 출력을 위해 스풀링을 채택하고 있습니다.
참고로 주기억장치의 일부분을 할애하여 입출력할 내용을 기록하여 두고 CPU가 처리하는 방식을 버퍼링(Buffring)라고 할 수 있습니다.
4. 중앙처리장치가 명령어를 수행하는 중 돌발상황이 발생하여 다른 일을 먼저 처리하는 상황에 대처하기 위한 상황이동을 ( )라 한다.
답안은 인터럽트(Interrupt) 입니다.
5. SJF스케줄링의 가장 큰 맹점은 어떤 프로세스의 ( )이 발생할 수 있다는 것이다.
답안은 기아상태 또는 무한대기상태 입니다.
운영체제의 프로세스(Process) 스케쥴링 기법에서 SJF 기법은 처리기(Processor)를 할당받기 위해 준비상태에 진입한 프로세스 중 가장 짧은 처리기 할당 시간을 요구하는 작업부터 서비스하여 주는 비선점(처리기를 할당받으면 작업이 완료되어야 다음작업 수행) 운영체제 기법입니다.
이 때 계속적으로 준비상태에 프로세스들이 진입하게되고 이경우 처리기 할당시간을 많이 필요로하는 프로세스는 계속적으로 후 순위로 밀려남으로써 처리기의 서비스를 받지 못하는 기아상태 또는 무한대기 상태가 발생하게 되겠지요.
8. 「RAM, HDD, 캐시, 레지스터」를 속도가 빠른 것부터 순서대로 나열하세요.
메모리 계층도에 대한 질문입니다.
컴퓨터의 성능을 가격에 비례하여 최적화 하기 위한 설계에 해당됩니다.
답은 "레지스트>캐시>RAM(일반적으로 DRAM)>HDD"입니다.
10. 페이지와 세크멘테이션을 비교 설명하세요.
가상메모리에 대한 질문으로 판단됩니다.
물리적인 주기억장치(일반적으로 DRAM)의 용량한계를 극복하기 위해 운영체제에서 지원하는 기법중에서 보조기억장치(일반적으로 하드디스크)의 일부분을 할애하여 주기억장치의 역할을 수행하도록 하는 기법이 "가상메모리" 기법입니다.
이때 가상메모리의 주소를 설계하는 방법 중에 가상메모리로 할당받은 영역을 고정크기로 구분하는 방식이 페이징 기법이고 가변크기로 구분하는 방식이 세그먼테이션 기법입니다.
답안은 가상메모리로 할당받은 영역을 고정크기로 분할 한 것이 페이지, 가변크기로 구분한 것이 세그먼트 단위입니다.
11. 동적주소 변환을 신속하게 처리하기 위하여 페이지 사상 테이블을 주기억장치보다 훨씬 빠른 접근 시간을 갖는 ( )에 넣는다.
질문에 대한 개연성이 조금 있습니다.
유추를 하여야 겠습니다.
일단 질문하신 분께서 유도하시는 것은 "연관메모리(associative memory)"로 생각됩니다.
연관메모리는 주소가 아닌 내용에 의해 접근가능하도록 설계되고 제작된 고성능 메모리입니다.
14. 프로세스에 의해 자주 참조되는 페이지들의 집합체를 ( )(이)라고 한다.
답은 워킹셋(Workseting) 입니다.
15. 프로그램이 동작하기 위해서는 보조기억 장치의 프로그램을 ( )으로 올려야 한다.
질문의 개연성은 있습니다.
질문자의 의도로 보아 "주기억장치(Main Memory)"로 생각됩니다.
16. 운영체제를 로딩하는 것을 ( )(이)라 한다.
무슨질문일까요?
아마 질문자의 의도는 "부팅(Booting)"을 의미하는 것 같습니다.
부팅은 컴퓨터에 전원이 인가되면 자체진단에 의한 오류를 검사한 후 핵심적인 "운영체제"의 기능을 주기억장치에 적재하는 과정을 의미합니다.
17. 최소의 페이지 부재율을 위해 프로세스가 필요로 할 페이지들을 운영체제가 예측하여 주기억장치에 여유가 있을 때 미리 적재 시키는 것을 페이지 호출 기법상 ( )페이징 기법이라 한다.
답은 "예상반입"으로 보여집니다.
반면에 필요한 경우 적재하는 것을 "요구반입"이라고 합니다.
18. 기억장소의 ( )은 현재 사용되고 있는 기억공간을 주기억장치의 한쪽으로 모음으로써 가변분할 다중 프로그래밍에서 존재하는 여러개의 작은 공간들을 하나의 커다란 기억공간으로 통합할 수 있다.
무슨질문일까요?
주기억장치 관리에서 실제 공간은 남아있으나 사용하지 못하는 공간이 발생하는 것을 단편화라고 합니다.
단편화 해결방안은 크게 인접한 공간을 연결하는 방법인 "통합(Coalescing)"과 여러 빈공간을 모아 하나의 큰 공간으로 확보하는 "집약(Compaction) "이 있습니다.
질문자의 의도는 "집약(Compaction) "를 묻는 것으로 판단됩니다.
19. 중앙처리장치의 모든 연산은 제어장치의 통제에 따라 ( )으로 작동하고 입출력장치는 CPU작동과 관계없이 특성에 따라 ( )으로 작동한다.
무슨질문일까요?
아마도 "순차적", "자율적" 으로 판단됩니다.
20. 프로세스 상태전이에서 프로세스가 CPU에서 실행되는 중 모든 처리를 마치지 못하고 다른 상태로 넘어가는 것을 ( )상태로 바뀐다고 할 수 있다.
무슨질문일까요?
답안은 "대기상태"로 생각됩니다.
21. 디스크의 SSTF(Shortest Seek Time First) 스케줄링알고리즘에서 접근되는 트랙순서는?
큐 = 25, 49, 87, 128, 5, 36, 53 이고 초기 헤드는 트랙 50에 있다.
현재 큐에서 가장 가까운 것을 찾으세요.
50에 가장 가까운 것은 49, 49에 가장 가까운 것은 53, 53에 가장 가까운 것은 36 순서로...
답은 50, 49, 53, 36, 25, 5, 87, 128입니다.
제가 실수하였을 수도 있으니 다시한번 검산하는 센스~
22. 다음 데이터 크기가 작은 것부터 순서대로 나열하세요.
① 위드 ② 바이트 ③ 트랙 ④ 비트 ⑤ 섹터
답은 비트, 바이트, 워드, 섹트, 트랙 순서입니다.
23. 디지털 서명에 사용되는 암호 기술은 암호키와 ( )키가 서로 다른 키를 사용하여 ( ) 방식을 이용한다.
질문에 개연성이 있습니다.
질문자의 의도로 보아 답안은 해독키, 공개키 시스템 순서로 판단됩니다.
24. 프로세서가 실행되는 동안 기억 장소의 모든 정보를 균일하게 참조하는 것이 아니라 현재 실행되는 주소 부근에서 국부적인 부문만을 집중 참조한다는 개념을 ( )(이)라 한다.
답은 지역성(Locality) 입니다.
25. 프로세스에 의해 자주 참조되는 페이지들의 집합체를 ( )(이)라고 한다.
답은 워킹셋(Workseting) 입니다.
27. 방화벽이 설치되는 위치와 설치시 장단점에 대해 써라?
아무래도 방화벽이 설치되면 외부로의 불법적인 침입과 내부의 정보가 외부로 유출되는 경우가 줄어들겠지만 자유로운 정보교환에 한계가 있겠지요.
나머지는 직접 작성하는 애티켓...
이왕이면 기술적인 부분을 분석하시면서~
28. drwxr-xr-- 를 해석하세요
다사용자(Multi User) 운영체제에서 사용자는 "개인사용자", "그룹사용자", "일반사용자"로 구분됩니다.
해설하겠습니다.
먼저 d는 디렉토리 파일을 의미합니다.
처음의 rwx는 개인사용자가 읽기( read), 쓰기(write), 실행(eXcute)가 가능함을 의미하고
다음의 r-x는 그룹사용자가 읽기, 쓰기 실행 중에서 읽기와 실행만 가능함을 의미하고
마지막 r--는 일반사용자가 읽기만 가능함을 의미합니다.
29. 어떤 프로세스가 다른 것에 의해 자원이 뺏겨 발생하지 않을 것을 기다리는 것을 ( )가(이) 발생할 수 있다는 것이다.
질문의 개연성이 있습니다.
질문자의 의도는 무한정 기다리게 되는 "교착상태(deadlock)"를 묻는 것으로 보입니다.
30. Dekker알로리즘, Dijkstra알로리즘 등은 ( )(을)를 해결하기 위한 것이다.
답은 "교착상태(deadlock)" 입니다.
31. 중앙처리장치의 모든 연산은 제어장치의 통제에 맞쳐 클럭파에 따라 ( )으로 작동하고 입출력장치는 CPU작동과 관계없이 특성에 따라 ( )으로 작동한다.
이전 질문입니다.
아마 "순차적", "자율적"이 질문자가 원하는 답일 듯~
32. 프로세스 상태전이에서 프로세스가 CPU에서 실행되는 중 모든 처리를 마치지 못하고 다른 상태로 넘어가는 것을 ( )상태로 바뀐다고 할 수 있다.
무슨질문일까요?
답안은 "대기상태"로 생각됩니다.
33. 여러 사용자가 하나의 CPU를 일정시간 할당해서 주어진 시간만 사용하는 방식을 운영체계 처리 기법상 ( )(이)라고 한다.
문제의 개연성이 있습니다.
질문자가 프로세스 스케쥴링에 대하여 질문하였다는 가정하에~
답은 비선점의 경우 "기한부 스케쥴링", 선점형 에서는 "라운드로빈"으로 판단됩니다.
34. 상호배제를 간략히 설명하세요.
주기억장치에 여러 작업이 적재되어 작업이 이루어 지는 다중프로그래밍시스템(Multi Programming System)에서 여러 프로세스(process)가 하나의 자원을 동시에 가공하여 Write할 경우 작업의 일관성이 무너질 수 있습니다. 이 경우 하나의 프로세스가 공유자원에 접근하였을 때 나머지 프로세스가 접근하지 못하도록 차단하였다가 작업이 끝났을 때 자원에 접근하는 체제를 "상호배제"라고 합니다.