본문내용
1. 컴퓨터의 이해
1.1. 컴퓨터 기억장치 계층구조의 개념
기억 장치(Memory)란 프로그램, 처리할 데이터, 처리한 결과 등을 저장하는 장치를 말한다. 중앙처리장치에서 컴퓨터 시스템을 관리, 제어하고 명령어들을 해석하고 실행하기 위해 미리 데이터나 명령어들을 컴퓨터 내에 기억시켜야 하기 때문에 이 기억장치가 필요하다. 기억 장치는 기억 용량의 크기와 사용용도, 처리 속도 등에 따라 주기억장치와 보조기억장치, 캐쉬(cache), 레지스터 등으로 나누어지며 계층적인 구조로 되어 있다.
일반적으로 계층의 높낮이의 단계에 따라 속도, 용량이 다른데, 계층이 상위로 올라갈수록 기억 장치의 속도는 증가하고, 기억 장치 비용이 비트 당 증가하므로 기억 용량이 감소하는 형태를 띤다. 기억장치가 한 종류로만 존재하지 않고 여러 계층으로 존재하는 이유는 중앙처리장치의 속도와 I/O 속도와의 차이를 해소하며 시스템 전반의 성능 향상에 도움을 주기 때문이다.
속도가 빠른 주기억장치는 기억 용량(memory capacity)이 한정되어 있고, 가격이 비싸기 때문에 무조건 적으로 좋은 것은 아니다. 따라서 [표 1]에 따라 상위 계층으로 올라갈수록 나타나는 특징을 참고하여 이를 적절히 분배하여 사용하는 것이 컴퓨터 성능에 더욱 효율적일 것이다.
[표 1] 메모리의 종류와 특징 및 계층구조 상위로 올라갈수록 1) 기억 장치의 속도 증가 2) 비트 당 기억 장치의 비용증가 3) 용량 감소
장치 접근 속도 메모리 용량에 따른 비용
레지스터 가장 빠름 가장 높음
캐쉬 메모리 캐쉬 (정적 RAM) 빠름 높음
주기억장치 동적 RAM 빠름 높음
보조기억 장치 하드디스크 보통 보통
CD-ROM 느림 낮음
백업 테이프 매우 느림 매우 낮음
USB 비교적 빠름 가장 낮음
SSD 매우 빠름 보통
레지스터를 제외하고 기억장치의 종류를 나누자면 크게 주기억 장치와 보조기억장치, 캐쉬 기억 장치로 나눌 수 있다. 주기억 장치는 인간의 대뇌에 있는 기억 중추와 같이 정보나 데이터를 기억하는 장치로 중앙처리장치와 자료를 직접 교환할 수 있고 프로그램 수행에 사용되는 기본적인 명령어와 데이터를 기억하여 바로바로 처리될 수 있도록 한다. 보조기억장치는 주기억 장치의 기억능력을 보조하며 용량의 한계성을 극복할 목적으로 사용되는 장치로 볼 수 있다. 주기억장치보다 비용이 저렴하고 저장되는 정보를 반영구적으로 안전하게 보존할 수 있다. 캐쉬 기억 장치의 경우 중앙처리장치(CPU)와 주기억장치 사이의 속도 차이를 극복하기 위해 필요한 고속 메모리로, 주기억장치보다는 고가이지만 적응 용량으로도 빠른 처리속도를 나타낼 수 있다. 주 기억 장치에 있는 데이터나 내용 중에서 자주 사용되는 것을 미리 캐쉬 기억장치에 복사해 두었다가 필요할 때 중앙처리장치에서 불러다 쓰므로 처리가 매우 빠르다.
1.2. 운영체제의 유용한 기능
1.2.1. 편리한 사용자 인터페이스 제공
운영체제는 사용자가 컴퓨터를 편리하게 사용할 수 있도록 사용자 인터페이스(User Interface)를 제공한다. 대표적으로 그래픽 사용자 인터페이스(GUI: Graphic User Interface)가 이에 해당한다. GUI는 컴퓨터 사용자가 마우스나 키보드와 같은 입력장치를 이용하여 그래픽 환경에서 직관적으로 원하는 프로그램을 선택하고 실행할 수 있도록 하는 방식이다.
초기 컴퓨터에서는 사용자가 컴퓨터가 이해할 수 있는 명령어를 직접 입력해야 했다. 이러한 방식은 일반 사용자가 사용하기에는 매우 어려웠다. 그러나 GUI 방식을 도입하면서 컴퓨터 사용자는 복잡한 명령어를 기억할 필요 없이 마우스나 터치스크린을 통해 직관적으로 원하는 작업을 수행할 수 있게 되었다. 따라서 GUI는 컴퓨터에 대한 이해도가 낮은 일반 사용자들도 손쉽게 컴퓨터를 이용할 수 있게 하는 핵심적인 사용자 인터페이스라고 할 수 있다.
특히 Windows 운영체제의 경우, Windows 1.0 버전부터 GUI 환경을 제공하며 지속적으로 개선해왔다. Windows 95 이후 버전에서는 시작 메뉴, 작업 표시줄, 파일 탐색기 등 사용자 친화적인 GUI 요소들이 도입되면서 일반 사용자들이 보다 편리하게 컴퓨터를 활용할 수 있게 되었다. 최근 Windows 10에서는 터치스크린 지원, 음성 명령 기능 등 GUI를 더욱 발전시켜 사용자 편의성을 높이고 있다.
이처럼 운영체제의 GUI 기능 개선은 컴퓨터 사용의 대중화와 보편화에 크게 기여해왔다고 볼 수 있다. 과거에는 컴퓨터 사용이 전문가나 특정 집단에 국한되었지만, 운영체제의 발전으로 일반 사용자들도 손쉽게 컴퓨터를 활용할 수 있게 된 것이다.
1.2.2. 분산처리 시스템
분산처리 시스템(Distributed Processing System)은 하나의 대형 컴퓨터에서 수행하던 기능을 지역적으로 분산된 여러 개의 미니컴퓨터(Mini Computer)에 분담시킨 후 통신망을 이용하여 상호 간에 처리, 교신하는 방식을 의미한다. 이를 더 나아가 서버를 하나 두고 여러 개의 컴퓨터 등이 접속하여 공통된 데이터에 접근하고 상호 처리가 가능한 클라우드 컴퓨팅 시스템까지 포괄하여 설명할 수 있다.
분산처리 시스템의 용도는 정보의 전송을 위해, 통신 네트워크에 접속하여 상호 연결된 여러 개의 연산 노드 간의 기능적 분산 및 상호 협동 처리로써 연산 속도와 신뢰성을 높이고, 컴퓨터 자원을 보다 효율적으로 이용하는 방식을 의미한다. 사용법으로는 분산처리시스템의 경우 프로세스 모델이나, 네트워크 위상 구조에 따라 다르기도 하고, 시스템 설계에 따라 분류되기도 한다. 무엇보다 분산 범위에 따라 작게는 근거리 통신으로(Local Area Network: LAN) 같은 망 내에 있는 한 빌딩 또는 몇 개의 인접된 빌딩 등의 비교적 가까운 거리에서 사용되는 경우가 있고, 지역적으로 넓게는 광역통신망(Wide Area Network: WAN) 전화선, 마이크로웨이브, 통신 위성 채널 등으로 넓게 사용되기도 한다.
분산처리 시스템의 유용성으로는 자원 공유, 연산 속도 증가, 신뢰성 향상, 통신 기능 등을 들 수 있다. 자원 공유의 경우 네트워크를 통해 다수의 노드가 상호적 연결이 되어 있을 때, 한 노드에서의 사용자는 다른 노드의 자원을 효율적으로 사용할 수 있다. 연산 속도 증가의 경우 특정 연산이 병행적으로 수행해야 하는 경우, 다수의 부연산 단위로 분할이 가능하며, 이때 여러 노드에 작업을 분담시킨다. 신뢰성 향상의 경우 분산 처리 시스템에서 어떤 노드가 제 기능을 하지 못한다고 하더라도 다른 노드에 영향을 주지 않은 채로 동작이 가능하다. 통신 기능의 경우 여러 노드가 네트워크로부터 상호연결 되어 있는 경우 각각의 프로세서 간에 정보 교환이 가능하다. 이 역할에 따라 사용자들은 파일 전송이나 전자 우편들을 이용할 수 있고, 이로써 상호 간에 데이터 송수신이 가능하다.
이와 같이 분산처리 시스템은 정보의 전송, 네트워크를 통한 자원 공유와 협업, 신뢰성 향상 등 다양한 유용성을 가지고 있어 컴퓨터 시스템 발전에 중요한 역할을 해왔다.
1.2.3. 보안
운영체제의 보안은 컴퓨터와의 상호정보 전달에 대한 접근성을 낮추어 다른 사람들이 개인의 PC에 무분별하게 접근하는 것을 방지하는 기능이다. 운영체제에서는 데이터 보호를 위해 여러 가지 보안 기능을 제공하고 있다.
외부보안(External Security)은 천재지변이나 불법 침입자로부터 시스템을 보호하는 것으로 시스템 통제 절차를 통해 이루어진다. 사용자 인터페이스 보안(User Interface Security)은 운영체제가 사용자의 신원을 확인하는 절차를 통해...