정보

    • 업무명     : 정보처리기사 실기 : 27강 응용 SW 기초 기술 활용 (운영체제 기초 활용하기)

    • 작성자     : 이상호

    • 작성일     : 2020-05-10

    • 설   명      :

    • 수정이력 :

     

     

     내용

    [운영체제의 특징 파악]

    [1] 운영체제의 특징
    • 운영체제는 사용자로 하여금 컴퓨터의 하드웨어를 보다 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 소프트웨어이다. 

    • 하드웨어는 컴퓨터의 장치를 제어하고 데이터를 처리 하는 중앙 처리 장치, 데이터를 저장하는 기억 장치, 외부와의 통신을 담당하는 통신 장치 그리고 데이터 입력과 출력을 담당하는 입출력 장치 등으로 구분될 수 있다. 

    • 즉, 운영체제 는 사용자 편의성을 위한 인터페이스인 동시에 다양한 자원을 관리하는 자원 관리자이다. 

     

    [2] 윈도즈 계열 운영체제의 특징
    • 마이크로소프트사에서 1995년도에 윈도즈 95(Windows 95)를 발표한 이후 98, ME, XP, 7, 8, 10 등의 버전으로 지속 출시되고 있다. 사용자가 컨트롤하는 마우스의 아이콘을 이용하 여 소프트웨어를 실행시키는 편리한 인터페이스를 지원하는 것이 특징이다. 

    • 마이크로소프트사만이 수정 및 배포할 수 있으며 고객 지원이 체계적이라는 장점을 가지고 있지만, 문제점(버그 등)이 발견되었을 시 수정에 시간이 걸린다는 단점이 있고, 이런 시간적인 차이 를 이용하는 악성 해커들로 인하여 유닉스 계열의 운영체제에 비하여 보안에 취약하다는 문제점이 지속적으로 제기되고 있다. 

     

    [3] 리눅스/유닉스 계열 운영체제의 특징
    • 유닉스는 1960년대 AT&T Bell 연구소, MIT 그리고 General Electric이 공동 연구로 개발에 착수하여 개발한 운영체제이다. 

      • 멀티태스크 기능에 초점을 맞추었으며 초기 운영체제 Multics를 만들었다. C 언어로 재이식 되어 대중화의 기반을 마련하였고, 1970년대 AT&T가 본격적으로 유닉스 시스템을 판매하게 되었다. 

      • 이후 많은 변화를 거쳐 SYSTEM V 계열과 BSD(Berkely Software Distribution) 계열로 발전 해 왔었으나, 현재는 이 둘의 장점을 통합한 버전의 유닉스가 배포되고 있다.

      • IBM의 사용 운영체제인 AIX, 오라클의 솔라리스(Solaris), HP의 UX가 그 예이다. 

    • 리눅스는 유닉스의 호환 커널이다. 

      • 1991년 리누스 토발즈(Linus Tovalds)는 자유 소프트웨 어(Free Software)'정책 하에서 완전히 자유롭고 재배포가 가능한 운영체제인 유닉스를 만들었다. 

      • 자유 소프트웨어'란 금전적 무료가 아닌 원하는 대로의 실행', 무료나 유료로 복제물 재배포, 필요에 따른 개작 등 포괄적인 자유를 부여하는 것을 의미한다. 

      • 리눅스는 수천 명 이상의 개발자들이 코드를 보고 update를 하고 있다. 따라서 버그 발생 시 다 수의 개발자가 수정에 참여하여 빠른 업데이트가 가능하지만, 윈도즈와 같은 체계적인 지 원이 상대적으로 부족하여 일반인들보다는 전문가들이 사용하고 있다. 

      • 리눅스는 데비안, 레드헷, Fedora, Ubuntu, Cent OS와 같이 다양한 버전으로 다양한 회사에서 출시되고 있어 배포 정책, 배포 주기, 사상 등이 각기 다르다. 

      • 유닉스는 현재 서버 시장과 슈퍼컴퓨터 시장에서 매우 높은 점유율을 가지고 있다. 

     

    [4] 기타 운영체제
    • 1. 매킨토시 운영체제 OS X 

      • 유닉스 기반으로 만들어져 애플사의 제품군에서만 사용이 가능한 그래픽 기반 운영체제 이다. 

      • 애플사는 OS라는 운영체제를 오랜 기간 유지하여 왔으나, 1999년 OS X로 업데이트 를 하였다. 

      • 이후에는 클라이언트 버전, 서버 제품 등으로 제품군을 확대하였으며 2017년 OS X 시에라, 2018년 모하비 등을 지속적으로 발표하고 있다. 

      • 매킨토시 OS는 프로그램을 카피하고 삭제함으로써 install과 uninstall의 과정을 단순화하였으며, 드라이버 설치 또한 OS의 확장 폴더에 넣고 재부팅을 하면 인식되어 매우 간단하다. 

     

    [수행]

    [1] 운영체제의 역할을 파악한다.
    • [그림 1-1] 운영체제의 제어 범위'를 참조하여 운영체제의 역할을 확인한다. 

     

    [2] 윈도즈 운영체제의 특징을 확인한다.
    • 1. 하기 윈도즈계보도를 참조하여 각 운영체제의 계열별 특징을 조사한다.

      • 일반 사용자용 윈도즈 시스템인 윈도즈 95~10 계열의 특징을 파악한다. 

      • Mobile 계열 운영체제인 CE, Pocket PC, Mobile 계열의 특징을 파악한다. 

      • 서버용 운영체제인 NT4.0으로 출발한 Server 계열의 특징을 파악한다. 

     

    • 2. 사용자용 윈도즈와 서버용 윈도즈를 사용하여 차이점을 구분한다. 

      • 서버용 윈도즈는 사용자 윈도즈와 다음과 같은 차이가 있다. 해당 기능을 직접 실행 후 확인한다. 

      • 서버 관리자 기능이 있다. 

      • Microsoft 연동 계정을 사용할 수 없다. 

      • Active Directory Domain Controller 기능이 있다. 

      • 윈도즈 Server 백업 기능 외 서버에 필요로 하는 기능이 있다. 

      • 윈도즈 Server 전용 보안 업데이트를 추가로 받을 수 있다. 

     

    [3] 유닉스/리눅스 운영체제의 특징을 확인한다.

    1. [그림 1-3]의 유닉스/리눅스 운영체제 계보도를 참조하여 각 계열별 특징을 구분한다. 

     

    • 2. 유닉스와 리눅스의 차이점을 조사하여 구분한다. 

      • 다양한 구분 항목을 이용하여 리눅스와 유닉스의 차이점을 조사한다. 

     

    [운영체제 기본 명령어 활용]

    [1] 운영체제 기본 명령어
    • 운영체제를 제어하기 위한 방법은 CLI(Command Line Interface)와 GUI(Graphic User Interface)가 있다. 

    • CLI는 사용자가 직접 명령어를 입력하여 컴퓨터에게 명령을 내리는 방 식이며, GUI는 마우스로 화면을 클릭하여 컴퓨터를 제어하는 방식이다. 

    • 초기 윈도즈는 운 영체제를 CLI로 설치해야 했으나, 마우스 기반의 제어 시스템인 GUI가 개발되며 설치 또 한 화면 위주로 하게 되어 사용 빈도가 줄었다. 

    • 그러나 오픈소스 기반의 개발환경이 급격히 늘어나며 GitHub[분산 버전관리 툴인 깃(Git) 을 사용하는 프로젝트를 지원하는 웹 호스팅 서비스] 등의 사용이 중요해지게 되었다. 

    • CLI 는 Git과 GitHub를 통한 소스 관리에 유용하므로 기본 개념과 명령어들을 숙지해야 한다. 

     

    [2] 윈도즈 운영체제의 기본 명령어
    • 1. CLI(Command Line Interface) 기본 명령어 

      • CLI 명령어를 입력하기 위해서는 Command 창이 필요하다. 프로그램 및 파일 검색에서 CMD를 입력하거나 윈도즈 보조 프로그램에서 명령 프롬프트를 선택하여 Command 창 을 호출할 수 있다.

     

    • 2. GUI(Graphic User Interface) 기본 명령어 

      • 윈도즈 내에서 파일을 이동하고 프로그램을 실행하는 것 등 모든 것이 GUI 명령에 해당 한다. 메모리나 디스크 제어 등이 필요할 경우에는 제어판에서 필요 기능을 선택하여 명령을 내릴 수 있다. 

     

    [3] 리눅스/유닉스 계열 운영체제의 기본 명령어
    • 리눅스와 유닉스 명령어는 Shell에서 입력할 수 있다. 

    • Shell이란 컴퓨터 내부를 관리하는 Kernel과 사용자 간을 연결하는 Command 창이다. 

    • 셸의 주요 기능은 다음과 같다. 

      • 세션별 변수를 설정, 운영체제를 사용자가 원하는 상태로 설정하도록 지원 

      • 사용자 요청에 기반한 명령렬 작성 

      • 백그라운드 처리, 서브 셸 생성 

      • 일련의 명령어를 묶어 처리하는 스크립트 기능 지원 등 

    • Bourne 계열은 Bash 셸, Korn 셸, Bourne 셸 등이 존재하고, C계열은 Csh, Tcsh, Zsh, Ash 와 같은 셸이 있다. 이 중 Ksh 셸은 리눅스에서, Bash 셸은 리눅스에서 가장 보편적으로 사용되고 있다. 

    • 1. CLI(Command Line Interface) 기본 명령어

      • 리눅스는 최상위 유저를 CLI 환경에서 #으로 표시하며 일반 유저를 $로 표시한다. 명령어 에 대한 도움말은 -help, -h, #man을 명령어 뒤에 붙임으로써 확인할 수 있다. 모든 명령 어에는 다른 옵션값들이 존재한다. 예를 들어 #mkdir는 디렉터리를 생성하는 명령어이며, -p옵션을 사용하면 하위 디렉터리까지 한 번에 생성할 수 있다. #cp는 파일 복사 명령어 있데, -i는 덮어쓰기, -r는 하위 디렉터리 및 파일 모두 복사, -v는 명령어 실행 과정을 보 여 주는 옵션값이다.

      • 명령어는 파일 디렉터리 관리, 유저 관리, 권한 관리, 프로세스관리, 통신 관련 등으로 구분될 수 있다. 최상위 디렉터리는 /이며 root는 최상위 디렉터리 아래의 root 계정의 홈 디렉터리임을 의미한다. 타 운영체제에서 root를 최상위 디렉터리라고 하는 것과 다르다.  

     

    • 2. GUI(Graphic User Interface) 기본 명령어 

       

      • 리눅스의 GUI는 윈도즈와 같이 기본 설정이 아닌 경우가 많아 버전 별로 별도의 설치 방법에 따라 GUI 환경을 설치해야 한다. 설치 뒤에는 GUI 환경과 CLI 환경을 이동하는 명령어를 사용하여 두 환경을 이동할 수 있다. 

     

    [수행]

    [1] 윈도즈 운영체제의 기본 명령어를 사용한다.
    • 1. CLI(Command Line Interface) 기본 명령어를 사용하여 명령을 수행한다. 

      • (1) 프로그램 및 파일 검색에서 `CMD'를 입력하거나 윈도즈 보조 프로그램에서 `명령 프롬프트'를 선택하여 명령어 창을 불러온다. 

     

    • (2) 명령어 창에 Help를 입력하여 명령어 종류를 확인한다. 

     

    • (3) 다양한 명령어를 확인하고 실행한다. 

      • 정보를 확인하기 위한 명령어를 실행한다. 

      • 파일의 위치, 경로 등을 검색하기 위한 명령어를 실행한다. 

      • 디렉터리를 생성하거나 이동하기 위한 명령어를 실행한다. 

      • 파일에 대한 처리(복사, 이동, 재명명 등)를 위한 명령어를 실행한다. 

    • (4) Help + 명령어를 입력하여 명령어들에 대한 도움말을 확인한다. 

     

    • 2. GUI(Graphic User Interface) 기본 명령어를 활용한다. 

      • (1) 윈도즈를 구동시킨다. 

      • (2) 제어판 → 시스템 및 보안 → 문제 찾기 및 해결 → 도움말 및 지원을 순서대로 선택한다. 

     

    • (3) 다양한 명령어를 확인하고 실행한다. 

      • 보안 및 개인 정보와 관련된 명령어를 실행한다. 

      • 유지 관리 및 성능에 관련된 명령어를 실행한다. 

      • 네트워킹–컴퓨터 및 장치 연결 

      • 인터넷과 관련된 명령어를 실행한다. 

      • 전자 메일과 관련된 명령어를 실행한다. 

      • 파일/폴더/라이브러리와 관련된 명령어를 실행한다. 

        프린터 및 인쇄와 관련된 명령어를 실행한다. 

        컴퓨터 사용자 지정과 관련된 명령어를 실행한다. 

        하드웨어, 장치 및 드라이버와 관련된 명령어를 실행한다

     

    [2] 유닉스/리눅스 운영체제의 기본 명령어를 사용한다.
    • 1. CLI(Command Line Interface) 기본 명령어를 사용한다. 

      • (1) 리눅스 또는 유닉스를 구동시킨 뒤 Shell 창을 호출한다. 

      • (2) 명령어 창에 -help, -h, #man 명령어를 입력하여 실행 가능한 명령어 종류를 확인한다. 

      • (3) 표1-2를 참조하여 기본적인 명령어를 실행하여 학습한다. 리눅스/유닉스별로 명령어가 약간씩 상이할 수 있다. 도움말의 도움을 받아가며 구동 중인 운영체제의 CLI 명령어를 파악한다. 

     

    • 2. GUI(Graphic User Interface) 기본 명령어를 사용한다. 

      • (1) 리눅스 또는 유닉스를 구동시킨다. 

      • (2) help center를 구동시킨다. 

      • (3) 다양한 기능을 확인하고 실행한다. 

        • 프로그램의 설치와 관련된 기능을 실행한다. 

        • 파일, 폴더, 문서와 관련된 기능을 실행한다. 

        • 운영체제 및 컴퓨터 최적화와 관련된 기능을 실행한다. 

        • 인터넷과 네트워크에 관련된 기능을 실행한다. 

        • 음악, 비디오, 사진과 관련된 기능을 실행한다. 

        • 각종 지원과 관련된 기능을 실행한다

     

    [운영체제 핵심 기능 파악]

    [1] 운영체제 핵심 기능
    • 운영체제는 중앙 처리 장치, 메모리, 스토리지, 주변 기기 등을 적절히 관리한다. 특히 주기 억 장치와 메모리, 메모리와 스토리지 사이의 속도차로 인해 여러 가지 관리 기법들이 개발 되었다. 

    • 초기에는 메모리 용량에 제한이 많아 소프트웨어 개발 시 메모리관리가 매우 중요했으나, 최근에 들어서는 운영체제에서 대부분 자동으로 관리해 주므로 사용이 편리해졌다. 

    • 또 개발 및 시스템 환경이 클라우드화 되면서 자원에 대한 관리 노력이 많이 줄었다. 

    • 1. 메모리관리 

      • 메모리 안에는 다수의 프로그램들이 실행된다. 

      • 프로그램 실행 중 메모리가 꽉 차게 되면 시스템의 속도가 느려지고 때로는 시스템이 멈추는 현상이 발생한다. 

      • 따라서 프로그램의 실행이 종료될 때까지 메모리를 가용한 상태로 유지 및 관리하는 것을 메모리관리라고 한다. 

      • 메모리에 있는 프로그램은 중앙 처리 장치인 CPU로 이동하여 처리된다. 

      • CPU는 Virtual or logical address를, 메모리는 physical address를 사용하는데 이를 매핑하는 것은 MMU(Memory Management Unit)가 담당한다. 

      • 즉, CPU와 지속적으로 데이터를 송수신하는 상황에서 어떤 부분의 메모리가 현재 사용 되는지, 어떤 순서로 메모리에 입출력되어야 하는지, 메모리 공간이 필요할 경우 어떻게 확보 및 제거할지에 대한 종합적인 관리가 메모리관리이다. 

    • 2. 프로세스관리 

      • 프로그램은 파일 형태로 저장하여 관리되다가 실행을 시키면 동작을 하게 된다. 

      • 이때 실행 중인 프로그램을 프로세스(Process)라고 한다. 

      • 프로세스관리 기법에는 `일시 중지 및 재실행', `동기화', `통신', `교착상태 처리', `프로세스 생성 삭제' 등이 있다. 

      • 윈도즈에서는 작업관리자의 프로세스 탭에서 다양한 프로세스를 조회할 수 있고 프로그램 이 정상 동작하지 않을 때 프로그램 끝내기를 통해 프로세스를 중단시킬 수도 있다.

     

    [2] 가상화, 클라우드
    • 1. 가상화 

      • 가상화는 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 반대로 하나의 물리적 인 리소스를 여러 개로 보이게 하는 것을 의미한다. 

      • 대부분의 서버는 용량의 20% 정도만 을 사용하는데, 가상화는 서버의 가동률을 60~70% 이상으로 올릴 수 있다. 

      • 가상화를 통해 사용자는 하나의 PC에 여러 개의 운영체제(윈도즈, 유닉스/리눅스 등)를 설치하여 개발되는 프로그램을 다양한 환경에서 테스트할 수 있도록 하며, 서로 다른 운영 체제에서만 구동되는 프로그램을 실행시키도록 지원하기도 한다. 

      • 가상화는 크게 플랫폼 가상화와 리소스 가상화로 구분될 수 있다. 

      • 플랫폼 가상화는 하드웨어 플랫폼 위에서 실행되는 호스트 프로그램이 게스트 프로그램을 만들어 마치 독립된 환경을 만들어 낸 것처럼 보여 주는 것이다. 

      • 게스트 소프트웨어 위에서 사용자는 독립된 하드웨어에서 소프트웨어가 실행되는 것처럼 활용할 수 있다. 

      • 리소스 가상화는 메모리, 저장 장치, 네트워크 등을 결합하거나 나누는 것인데, 사용자는 가상화된 물리적 장치들이 어떤 위치에 있는지 모르는 경우가 많다. 

    • 2. 클라우드 

      • 인터넷 기반에서 구동되는 컴퓨팅 기술을 의미한다. 클라우드 컴퓨팅을 이용하면 응용 프 로그램을 필요에 따라 불러 사용하고, 데이터를 손쉽게 저장 및 추출할 수 있다. 태블릿, 휴대폰 등 사용 디바이스가 다양해지면서 클라우드 컴퓨팅은 중요도가 높아지고 있다. 클라우드 서비스는 IaaS, PaaS, SaaS 등으로 구분된다. 

        • IaaS(Infrastructure as a Service): 웹상에서 구글, 마이크로소프트, 아마존 등에서 제공하 는 환경의 네트워크, 보안, 데이터 저장소, 콘텐츠 딜리버리 서비스를 포함한 다양한 인프라를 임대하여 이용할 수 있는 서비스 

        • PaaS(Platform as a Service): 운영체제가 이미 구성되어 있는 상태에서 사용자는 데이터 와 애플리케이션만 직접 관리할 수 있는 서비스 

        • SaaS(Software as a Service): 인프라와 운영체제뿐만 아니라 사용할 수 있는 소프트웨어 까지 갖추어져 웹상의 로그인만으로 다양한 소프트웨어를 사용한 만큼 비용을 지불해 가며 사용할 수 있는 서비스 

     

    [수행]

    [1] 운영체제 핵심 기능을 확인한다.
    • 1. 메모리관리의 주요 기능을 파악한다. 

      • (1) 윈도즈 메모리관리를 실행한다. 

        • 윈도즈의 작업관리자를 실행한다. 

        • [그림 1-13]의 1번 부분에서 메모리 상태를 확인한다. 필요 이상의 메모리를 활용하 고 있어 프로그램을 중단시켜야 할 경우 프로세스 끝내기를 클릭하여 종료시킨다. 

     

    • (2) 리눅스/유닉스 메모리관리 기능을 사용한다. 

      • meminfo 명령어를 이용하여 메모리 상태를 점검한다. 

      • 메모리가 부족하면 swapping(프로그램에 할당된 메모리 일부를 디스크에 저장) 기법 을 이용한다. - 메모리가 부족하면 /proc/sys/vm/min_free_kbytes(최소 가용 메모리 확보 기준 해제) 를 통해 추가적인 메모리를 확보한다.

    • 2. 프로세스관리 기능을 사용한다. 

      • (1) 윈도즈 프로세스관리를 실행한다. 

        • 윈도즈의 작업관리자를 실행한다. 

        • 이미지 이름에 있는 프로세스들 중 필요 없는 프로세스는 프로세스 끝내기를 통해 종료시킨다. 

     

    • (2) 리눅스/유닉스 프로세스관리 기능을 실행한다. 

      • /proc 디렉터리 아래서 현재 실행되는 프로세스를 확인한다. 

      • 세부적인 프로세스를 확인한다. 프로세스의 PID를 확인한 뒤 해당 디렉터리로 이동 하여 ls 명령어를 사용하여 조회한다. 해당 PID에 해당하는 프로세스가 종료되면 임시로 생성되었던 디렉터리는 사라지는 것을 확인한다. 

      • TOP 툴을 사용하여 현재 시스템의 CPU와 RAM 사용률을 모니터링한다. 

     

    [2] 가상화, 클라우드를 활용한다.
    • 1. 클라우스 서비스에 가입한다. 

    • 2. 필요 서비스를 선택한다. 

      • 필요로 하는 운영체제 서비스, 데이터베이스 서비스, 스토리지 서비스, 보안 서비스 등을 선택한다. 용량에 대한 산정이 어려우면 용량 증가 감소에 따라 동적으로 변화하는 서비스를 선택하여 유연성을 확보한다. 

    • 3. 환경을 설정한다. 

      • 서비스 회사에서 제공하는 환경을 설정하여 필요로 하는 환경을 세팅한다. 

     

    [연습문제]

    • 운영체제 특징에 대해 잘못 설명한 것은?

      • 운영체제는 사용자로 하여금 컴퓨터의 하드웨어를 보다 쉽게 사용할 수 있도록 인터페이스를 제공해 주는 소프트웨어이다. 

      • 하드웨어는 컴퓨터의 장치를 제어하고 데이터를 처리 하는 중앙 처리 장치, 데이터를 저장하는 기억 장치, 외부와의 통신을 담당하는 통신 장치 그리고 데이터 입력과 출력을 담당하는 입출력 장치 등으로 구분될 수 있다. 

      • 즉, 운영체제 는 사용자 편의성을 위한 인터페이스인 동시에 다양한 자원을 관리하는 자원 관리자이다. 

      • 데이터베이스를 생성해준다.

     

    • 다음중 클라우드의 종류가 아닌 것은?  

      • IaaS(Infrastructure as a Service)

      • PaaS(Platform as a Service)

      • SaaS(Software as a Service)

      • HaaS(Hardware as a Service)

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

    [기상학/프로그래밍 언어]

    • sangho.lee.1990@gmail.com

    [해양학/천문학/빅데이터]

    • saimang0804@gmail.com

     

     

     

     

     

     

     

     

     

     

     

    본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기