ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 연습문제풀이1
    정리필요2 2008. 9. 2. 20:16

    제출일 : 07년 3월 12일 월요일 3교시

     

    연습문제풀이 #1, #3, #5, #8, #12, #13

     

    1.1 운영 체제의 세 가지 중요한 목적은 무엇인가?

    ① 편리성(Convenience) - 사용자에게 컴퓨터의 프로그램을 쉽고 효율적으로 실행할 수 있는 환경을 제공

    ② 효율성(Efficiency)- 컴퓨터 시스템 하드웨어 및 소프트웨어 자원을 여러 다중 사용자간에 효율적 할당, 관리 보호

    ③ 제어(Control)- 운영체제는 제어 프로그램으로서 사용자 프로그램의 오류나 잘못된 자원 사용을 감시하는 것과 입출력 장치 등의 자원에 대한 연산과 제어를 관리

     

    1.3 스풀링의 개념과 장점을 설명하여라.

    [스풀링]Spooling

    1)컴퓨터 시스템에서 중앙 처리장치와 입축력장치가 동시에 독립적으로 동작하는 것.

    프린터나 카드 판독기 등의 입출력장치는 CPU에 비해 매우 느린 속도로 동작한다.

    이 때 CPU가 프린터 출력을 직접 제어한다면 프린터가 인쇄작업이 끝날 때까지 CPU는 다른 일을 하지 못하게 된다.

    그런데 실제로 이 시간의 대부분 동안 CPU는 프린터에서 다음 데이터를 달라는 신호가 오기를 기다리고 있으므로 비싼 CPU 시간이 낭비되는 결과를 낳는다. 따라서 프린터로 갈 데이터를 디스크 등의 보조기억장치에 잠시 기억시켰다가 CPU가 다른 일을 처리하면서 사이사이에 조금씩 프린터로 보내주면 프린터가 인쇄를 하는 동안에 CPU는 다른 작업을 처리할 수 있으며 전체 작업의 효율을 향상시킬 수 있다.

    2) 일반적으로  처리할 데이터를 디스크나 테이프에 잠시 저장시켜다가 나중에 다른 장치가 이용하게 하는 기법을 가리키는 말.

    3) 간단하게 말하면 컴퓨터에서 프린터로 데이터를 보내는 과정이라고 보면 된다.

    CPU는 처리속도가 빠르지만 프린터는 CPU의 속도를 따라가지 못하기에

    디스크에 임시로 저장해두고 프린터가 점차적으로 받아들여서 일을 처리하게 되는데 이 과정을 스풀링 이라고 한다.

     

    1.5 다중 프로그래밍의 중요한 이점은 무엇인가?

     

    2개 이상의 프로그램을 주기억장치에 기억시키고 중앙처리장치(CPU)를 번갈아 사용함으로써 컴퓨터 자원을 효율적으로 이용할 수 있다.

     

    중앙처리장치(CPU)는 날로 고속화되고 계산능력이 크게 증가하는 반면 기계적인 동작이 따라야 하는 입출력장치의 속도는 이에 미치지를 못한다. 따라서 한 프로그램이 주변장치의 처리를 기다리는 동안 다른 프로그램이 수행될 수 있게 함으로써 전체적인 시스템의 처리효율을 높이는 것이다.

     

    1.8 운영 체제의 효율적인 하드웨어 관리 능력에 대해서는 상당히 강조되어 왔다.

    이러한 원칙을 무시하고 자원을 "낭비"해도 좋은 경우는 언제인가? 이러한 시스템이 정말로 자원을 낭비한다고 볼 수 없는 이유는 무엇인가?

     

    멀티태스킹시에 시스템이 허용하는 범위내에서 GDI를 최대한 사용하는 경우.예를 들자면 차례차례 2번에 처리할 쓰레드를 한번에 두개모두 처리한다던가

    하는 것이 그 예가 되지 않을까 생각합니다.앞의 경우가 시스템 자원을 20%정도 활용하는데 반해 뒤의 경우가 시스템자원을 80%정도 활용한다면 자원사용 면에서는 낭비이지만 실제 시스템효율은 높아진다고 볼 수 있겠죠.

     

     

    1.12 실시간 시스템의 종류와 예를 설명하시오.

     

    실시간 시스템은 경성 실시간 시스템 (hard real-time system)과

    연성 실시간 시스템 (soft real-time system)으로 나누어진다.

     

    경성 실시간 시스템은 데드라인 위반 사건 발생시, 재앙적 사건이 발생하는 시스템으로,

    무기제어, 원자력 발전소 제어등 산업제어나 로보틱스제어를 예로 들 수 있다.

     

    연성 실시간 시스템은 서비스의 개념에 시간성이 주어지지만, 데드라인 위반이 발생해도 크게 심각하지 않은 시스템으로 멀티미디어처리, 가상 실제, 해저 탐사, 우주 탐험 등의 분야에 활용되며 정보가전기기에 사용되는 Embedded System도 예로 들 수 있다.

     

    1.13 휴대폰과 같은 내장형 시스템을 구성하는 소프트웨어에는 어떤 것들이 있는지 조사해 보자.

    책과 인터넷을 기반으로 조사하였더니 Embedded Software엔 S/W개발도구, RTOS, 미들웨어, 응용 및 서비스등이 있었다.

    RTOS

    현재 세계시장에 나와 있는 상용 RTOS의 종류는 수십 종에 이르며, 대표적인 제품으로는 VxWorks, pSOS, QNX, OS-9, VRTX 등이 있다. 상용 RTOS는 PC의 Windows OS처럼 어느 특정 제품이 시장을 독점하지 않고, 적용 제품이나 규모에 따라서 여러 종류의 상용화된 또는 비상용화된 제품들이 많이 사용되고 있다. 현재 세계시장 점유율 1위를 차지하고 있는 제품은 WindRiver사의 VxWorks로서 2위인 ISI사의 pSOS와 합병하여 계속 세계시장 우위를 지키고 있다. ’90년대 초반까지 선두였던 VRTX는 현재 7위에 머물러 있다.

     

    # VxWorksVxWorks는 WindRiver System 사에서 개발한 실시간 RTOS로 다양한 프로세서에서 복잡한 실시간 내장형 응용(embedded application)을 개발 및 실행시키는데 가장 널리 사용되고 있다. VxWorks는 코어 기능을 하는 wind Microkernel과 네트워킹 기능, 파일 시스템, 입출력 관리, c 표준 라이브러리 등으로 구성되어 있다. VxWorks의 특징 및 구조는 다음과 같다. ● POSIX 1003.1b, ANSI C, TCP/IP 등과 같은 산업계 표준을 폭 넓게 지원하여, 내부연동성과 이식성이 뛰어남● 고성능 마이크로커널을 기반으로 하여 빠른 멀티타스킹, 인터럽트, 스케줄링 등 실시간적인 특징을 지원하며 256가지 우선순위를 부여하여 멀티타스킹을 효율적으로 지원● 확장성을 지원할 수 있도록 설계되어 각 응용마다 최소의 RTOS 기능만으로 조립되어 메모리를 효율적으로 사용하며 수백가지의 configuration을 지원● 다양한 booting 방법을 지원하며, ROM으로부터 부팅하는 방법, 내부 디스크로부터 부팅하는 방법, 네트워크를 통해 부팅하는 방법 중 하나를 사용자에 의해 선택할 수 있도록 지원● Tornado라는 통합개발도구를 통해, GNU toolkit (cross compiler, remote debugger, utilities 등 포함), interactive shell, windview 등의 개발도구 지원

     

    # pSOSpSOS는 임베디드 프로세서를 위하여 모듈화 되어, 고성능, 신뢰성, 사용 편이성에 주안을 두고 개발 되었으며, 실시간 멀티타스킹 커널인 pSOS+와 여러 모듈들의 집합으로 구성되어 있다.● pSOS+는 작고(17-40KB) 빠르며(context switching time이 10microsec 이하), 우선 순위에 기반을 둔 선점가능한 스케줄러 지원● pNA+를 통하여 TCP/IP, UDP를 지원하며, 스트림을 포함하는 표준 소켓 인터페이스 사용● Sun-compatible RPC를 pRPC+를 통해 지원하여 분산 응용을 쉽게 구축할 수 있음● Prism+라는 통합개발도구를 통해 사용자 설정과 pSOS 탬플릿과 칩레벨의 디바이스 드라이버 등을 지원

    # QNXQNX는 마이크로커널의 특징을 발전시켜 개발하였으며, QNX Neutrino라는 마이크로커널을 코어로 내장시키고 나머지 부분은 프로세스의 형태로 모듈화하여 SMP 서버와 같은 대형시스템에서부터 작은 임베디드 시스템까지 광범위하게 사용가능하다.● 선점가능한 우선순위 스케줄러를 지원하며 32개의 우선순위와 같은 우선순위의 경우 FIFO, Round Robin, Adaptive 스케줄링을 적용하여 멀티타스킹 구현 가능● 메시지 패싱에 기반을 둔 IPC를 제공하고, 시그널이나 공유 메모리를 통한 IPC도 지원● 프로세스 당 여러 개의 타이머를 사용할 수 있고, 나노 초 단위로 동작● QNX만의 GUI 환경을 Photon microGUI로 구현할 수 있게 지원

     

    # OS-9OS-9은 Microware System에서 제작한 운영체제로서 융통성있고 확장 가능한 구조를 특징으로 들 수 있으며, 시스템이 모듈화 되어 있어 결함 확산을 방지할 수 있다.● mwMAUI Graphics라는 임베디드 시스템을 위한 그래픽 API를 제공하여 적은 CPU 오버헤드로 높은 성능의 그래픽을 제공하여 줌● mwSoftStax 네트워킹이라는 통신기기를 위한 새로운 시스템 소프트웨어 파라다임 제공● DAVID라는 디지털 TV set-top box 용 멀티미디어 지원 라이브러리를 제공● 멀티미디어 응용에 적용하기 쉽도록 모듈화 되어 있어 각 멀티미디어 특성에 맞게 변형시키면 다양한 멀티미디어 요구를 충족 시킬 수 있음

     

    # VRTXVRTX는 Microtec에서 개발한 모듈화 되고, 다양한 디버깅 도구를 보유한 RTOS로서 현재는 MentorGraphics에 합병되어 운영되고 있다.● VRTX nanokernel을 기반으로 모듈화하여 사용자의 요구에 따라 시스템의 재설정이 용이하고 메모리도 최적화 시킬 수 있음● 결정적(deterministic)이며 선점이 가능한 멀티타스크 커널을 구현● Spectra라는 통합개발도구 안에 XRAY debugger, Xpert profiler, virtual target simulator 등 지원

     

    # Embedded LinuxOpen source인 Linux를 기반으로 임베디드 시스템에서 활용할 수 있도록 수정한 운영체제이다. 여러 기관에서 embedded linux를 발표하였는데 대표적인 것으로는 RT-linux, KURT, μClinux, Lineo 사의 Embedix 등이있다. Embedded linux는 open source라는 장점은 있지만 확실한 안정성과 서비스를 보장 받지 못하는 점, 아직까지 통일된 API가 확정되어 있지 않고, 다양한 개발도구가 지원되지 않는 점 등이 단점으로 남아 있다.● open source를 기반으로 수 많은 개발자 확보 가능 ● 다양한 종류의 네트워킹, 파일시스템, 프로토콜 지원하여 광범위한 응용과 하드웨어 지원● GNU 도구를 사용하여 cross compiler, remote debugger, 각종 utilities 등을 지원

     

    임베디드 미들웨어 분야에서는 위치기반 상황인식 서비스는 모바일 컴퓨팅 환경에서 수시로 이동하는 단말과 사용자의 위치를 인식하여 다양한 위치 인식 응용에 활용할 수 있도록 하는 것으로, MS의 UPnP(Universal Plug and Play), Sun의 Jini, Oracle의 9iASWE(Oracle9i Advanced Search Wireless Enabling), CMU의 Coda, UCL의 XMIDDLE(Information Sharing Middleware for Mobile Environment) 등이 있다. 이동성 지원 기술은 고속의 WLAN 개발과 WPAN (Wireless Personal Area Network)의 활용이 높아짐에 따라 빠른 로밍과 마이크로 모빌리티의 연구가 활발하게 수행되고 있다. 시스템 및 네트워크 환경에 적응하여 서버로부터 클라이언트로 다운로드 되는 멀티미디어 스트리밍 기술은 MS의 DirectX 8.1과 WMF(Windows Metafile), SUN의 JMF(Java Media Framework), Real Networks의 Real Player 등에서 개발 중에 있다. 또한, 분산 실시간 미들웨어 기술은 SUN과 IBM이 공동으로 연구하고 있는 Real-time JAVA를 비롯하여 HP의 J-Consortium, OMG(Object Manage ment Group)의 RealTime-CORBA, Washington Univ.의 TAO1 등에서 연구가 활발하게 이루어지고 있다.

     

    임베디드 S/W 개발 도구 분야에서 임베디드 시스템 개발을 지원하는 전통적인 통합 개발환경은 많이 있지만 특정 임베디드 OS 만을 지원하는 경우가 대부분인 실정이다. WindRiver 사의 Tornado는 VxWorks RTOS를 지원하며 GNU 툴킷, Interactive shell, WindView 등의 도구들이 통합된 편리한 사용자 인터페이스를 제공하여 세계 시장 1위를 점유하고 있다. 한편, Borland, IBM, Merant, QNX, Rational Software, RedHat, SuSE 등이 공동으로 eclipse 개발 환경을 개발 중인데 eclipse는 데스크탑용으로 공개된 상태로 임베디드 개발 환경까지는 아직 지원하지 못하고 있다. 임베디드 S/W의 소프트웨어 특성상 분산 환경을 고려해야 하지만 이를 고려한 임베디드 개발 도구도 아직 개발되지 않고 있다.

     

    임베디드 응용 및 서비스 분야를 살펴보면, 항공 및 군사용에 주로 사용되는 실시간 제어 응용은 지금까지는 한 시스템에 모든 센서가 연결되어 동작하는 형태였지만, 유비쿼터스 컴퓨팅 환경에서는 응용에 필요한 요소들이 네크워크 상에 존재하면서 동적으로 재구성되어 실행될 것이다. 정보단말과 네트워크의 특성에 따라 적절한 성능의 컨텐츠를 서비스하는 적응형 스트리밍 기술이 MPEG-4에서 제안되었지만 아직 초기 연구 단계이며, UMTS/IMT-2000과 공중 WLAN/WPAN이 통합되는 글로벌 IP 환경에서 사용자 및 단말의 빈번한 위치 변동과 무관하게 동일한 서비스를 제공하기 위한 마이크로 핸드오프와 로밍, 모바일 IP 기술 연구를 3Com, Bay, Cisco, Digital 등에서 수행하고 있다. 한편, 도로 상황과 차량 상태에 따라 효과적인 교통상황을 유지하기 위한 기술은 원격 교통정보수집 단계에서 첨단교통관리, 첨단차량시스템, 첨단도로 시스템 등의 기술이 포함된 ITS로 발전하고 있다.

    자료출처

    웹사이트 : http://www.naver.com , http://itfind.or.kr

    도서 : 운영체제개념 (김길창, 김정국 편저, 홍릉과학출판사)

Designed by Tistory.