일상 속 운영체제   

 

 OS(Operating System)라고 일컫는 운영체제는 일반 컴퓨터나 노트북의 전원을 켜면 가장 먼저 만나게 되는 소프트웨어이며 대표적인 예로 윈도우, 유닉스, 리눅스, 안드로이드, iOS 등이 있다.

 

 또한, 컴퓨터와 스마트폰 뿐만 아니라 MP3 플레이어, 내비게이션, PMP, 전자사전 등에도 운영체제가 있다. 이처럼 CPU의 성능이 낮고 메모리 크기도 작은 시스템에 내장하도록 만든 운영체제를 임베디드 운영체제 또는 임베디드 시스템이라고 한다. 

 

 임베디드 운영체제를 사용하는 기계와 그렇지 않은 기계는 차이가 있는데 운영체제가 없는 MP3 플레이어는 처음 구현한 기능 외에 다른 기능을 추가할 수 없다. 하지만, 임베디드 운영체제가 있는 기계는 음질을 향상하거나 다양한 종류의 음악 파일을 지원하도록 기능을 추가할 수 있다. 블루투스(무선 통신)을 이용하여 MP3 파일도 공유할 수 있다. 유선 전화기와 스마트폰도 마찬가지이다. 다시 말해, 임베디드 운영체제가 있는 기계는 기능을 계속 향상시킬 수 있다.  

 


 

   운영체제의 필요성  

 

 초기의 컴퓨터는 정해진 계산만 수행했기 때문에 특별한 사용 규칙이 필요 없었다. 하지만, 시대가 변함에 따라 메모리, CPU 등의 성능이 향상되고, 여러 작업을 동시에 수행할 수 있는 기능이 조성되면서 사용 규칙이 필요해졌다. 복잡한 작업 환경에 사용 규칙이 없으면 기계를 망가뜨릴 수 있기 때문에 등장한 것이 운영체제이다. 

 

 운영체제가 있는 기계는 새로운 기능의 추가나 성능의 변경이 가능하므로 성능 및 효율성을 꾀할 수 있으며, 이러한 기계를 프로그램이 가능한(programmable) 기계라고 부른다.  

 

 그렇다면 운영체제는 성능을 향상하는데에만 필요할까? 운영체제는 성능 향상뿐 아니라 자원 관리라는 중요한 역할도 한다. 우리는 컴퓨터를 사용할 때 웹 브라우저, 채팅, 음악 재생 소프트웨어 등을 동시에 사용한다. 이러한 소프트웨어를 응용 프로그램(application program)이라고 한다. 

 

하지만, 많은 응용 프로그램에 비해 컴퓨터를 구성하는 장치는 매우 제한적이다. 즉, 대부분이 하나의 키보드, CPU, 메모리, 마우스, 모니터, 하드 디스크 등으로 이루어져 있어 각각의 응용 프로그램이 이 장치를 서로 독차지하려 한다. 이러한 문제를 해결하려면 자원을 관리하는 강력한 중재자가 필요하다. 이 중재자는 누구에게 먼저 키보드를 주어야 할지, 모니터를 주어야 할지 등을 결정하고 악의적인 응용 프로그램으로부터 보호하는 역할도 한다. 

 

 

 

   운영체제는 자원을 어떻게 관리할까?  

 

 기술이 발달하면서 메모리 크기가 커지고 하드 디스크, 마우스, 사운드 카드, 그래픽카 드, 네트워크 카드 등 다양한 주변장치가 등장하게 되었다. 이렇게 컴퓨터에 부착된 모든 장치를 컴퓨터 자원(Computer Resource)이라고 한다. 

 

 운영체제는 사용자가 직접 자원에 접근하는 것을 막음으로써 자원을 보호하고 관리한다. 예를 들어, 사용자가 하드 디스크에 데이터를 저장하는 경우라고 가정한다. 사용자는 하드 디스크의 특정 위치에 저장할 수 없으며 운영체제가 알아서 적당한 위치에 저장한다. 만약 사용자가 하드 디스크에 데이터를 저장할 수 있다면 악의적인 사용자가 데이터를 지우거나 덮어쓰는 일이 발생할 수 있다. 이 때문에 운영체제는 응용 프로그램과 사용자에게 모든 자원을 숨긴다. 

 

 대신 운영체제는 사용자가 자원을 이용할 수 있는 여러 방법을 제공한다. 한 예로 사용자가 저장하려는 데이터를 운영체제에게 주면 운영체제는 하드 디스크의 적당한 장소에 저장하고 번호표를 사용자에게 돌려준다. 이와 같이 사용자가 컴퓨터 자원을 사용할 수 있도록 해주고 그 결과를 알려주는 것을 인터페이스(Interface)라고 한다.

 

 좀 더 쉽게 설명하면 인터페이스는 자동차에서 핸들 및 계기판과 같다. 자동차는 엔진과 바퀴로 움직이지만 운전자가 핸들로 조종하고 계기판을 통해 현재 주행 상황을 인지한다. 마찬가지로 컴퓨터는 CPU와 메모리로 명령을 처리하지만 사용자가 키보드나, 마우스로 자료를 입력하고 출력 결과를 얻는다. 즉, 운영체제 인터페이스를 통해서만 컴퓨터 자원을 사용할 수 있다. 

 

 운영체제는 사용자가 컴퓨터를 보다 쉽게 사용할 수 있도록 다양한 인터페이스를 제공함으로써 컴퓨터 자원을 보호함과 동시에 사용자의 편의를 도모한다. 

 

 


 

   운영체제란 무엇인가?    

 

 운영체제는 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어이다. 

 

 레스토랑을 예로 들면, 손님이 레스토랑에서 음식을 주문하면 웨이터가 그 음식을 주방에 알려주고 손님은 주문한 음식을 제공받는다. 이 때, 손님은 주방에 들어갈 수 없다. 직접 조리하거나 주방 기구를 만지려 한다면 레스토랑 관리자가 저지할 것이다. 운영체제도 마찬가지이다. 사용자가 하드 디스크의 특정 위치에 저장하려고 하면 기존 데이터와 섞여 엉망이 되므로 운영체제가 중재하여 대신 데이터를 저장하고 꺼내준다. 

 

 다시 말해 운영체제는 여러 응용 프로그램에 컴퓨터 자원을 적절히 나누어주는 역할을 한다. 

 

 

 



   운영체제의 역할   

 

 ■ 자원 관리

       - 운영체제는 키보드, 마우스, 네트워크카드, 사운드카드등의 컴퓨터 자원을 응용 프로그램에 분배하여 사용자가 원할하게

       작업할 수 있도록 돕는다. 자원을 요청한 프로그램이 여러 개라면 적당한 순서로 자원을 배분하고 적절한 시점에 자원을 회

       수하여 다른 응용 프로그램에 나누어 준다.

 

 ■ 자원 보호

      - 컴퓨터 내의 자원을 악의적인 사용자나 미숙한 사용자로부터 보호하는 것도 중요하다. 어떤 응용 프로그램이 남의 영역을

       침범한다면 다른 사람의 작업을 망치거나 데이터를 지울 수 있기 때문에 비정상적인 작업으로부터 컴퓨터 자원을 지키는

       것이 중요하다.

 

 ■ 하드웨어 인터페이스 제공

      - 어떤 제품을 사용할 때마다 별도의 소프트웨어를 설치한다면 불편할 것이다. 하지만, 운영체제는 복잡한 과정 없이 다양한

      장치를 사용할 수 있도록 해주는 하드웨어 인터페이스를 제공한다. 하드웨어 인터페이스 지원은 드라이버를 컴퓨터에 설치

      해야 가능한데 운영체제는 하드웨어 인터페이스가 자동으로 설치되게 함으로써 하드웨어의 종류에 상관없이 사용할 수 있

      다. 

 

 ■ 사용자 인터페이스 제공

    - 과거에 유닉스 MS-DOS와 같은 운영체제로 작업할 때는 마우스 없이 키보드만 가능했다. 여러모로 불편하며 일반인이 사

    용법을 배우기가 쉽지 않았다. 하지만 운영체제가 사용자 인터페이스(Graphical User Interface)를 제공하므로 대부분의

    작업을 마우스로 수핼할 수 있다. 이처럼 운영체제를 편리할 수 있게 사용할 수 있도록 제공되는 기능이 사용자 인터페이스

    이다. 

 

 

 

 

 



   운영체제의 목표   

 

 

 

 ■ 효율성

       - 같은 작업량을 처리하는 데 보다 적은 자원을 효율적으로 사용하는 것이 중요하다. 효율적인 자원 관리는 다양한 방법으

       로 이루어질 수 있는데, 일반적으로 운영체제의 크기를 최소화하고 운영체제가 사용하는 코드를 최적화 하는 것이다.

 

 ■ 안정성

      - 운영체제가 불안하면 그 피해가 고스란히 사용자에게 돌아가기 때문에 운영체제는 안정성이 담보되어야 한다. 흔히 발생

       하는 예로 문서 작업을 하고 있는데 갑자기 컴퓨터가 다운되어버리는 일이 일어나서는 안된다. 이처럼 안정적이려면 사용

       자와 응용 프로그램의 안전 문제와 하드웨어적인 보안 문제를 처리할 수 있어야 하며 문제가 발생했을 때 이전으로 복구하

       는 결팜 포용 기능을 수행해야 한다.

 

 ■ 확장성

      - 운영체제는 다양한 시스템 자원을 추가하거나 제거하기 편리해야 한다. 즉, 확장성이 좋아야 한다. 하드웨어의 종류에 상

       관없이 꽂으면 바로 실행할 수 있는 플러그 앤 플레이 기능을 제공해야 한다. 

 

 ■ 편리성

   - 사용자에게 편리하게 작업할 수 있는 환경을 제공하는 것도 중요하다. 사용자에게 GUI를 제공하지 않고 텍스트만 사용하게

   하면 운영체제의 효율성은 높아질 수 있지만 사용자 입장에서는 엄청 불편할 것이다. 따라서, 응용 프로그램과 사용자에게 다

   양한 편리성을 제공하면서도 자원의 낭비 요소를 막아야 한다.

'운영체제 > 기초' 카테고리의 다른 글

6. CPU와 메모리(2)  (0) 2020.10.14
5. CPU와 메모리(1)  (0) 2020.10.06
4. 하드웨어의 기본 구성  (0) 2020.10.05
3. 운영체제의 구조  (0) 2020.10.05
2. 운영체제의 역사  (0) 2020.09.28

 

   전기신호란 무엇인가?   

 

 데이터는 전기 신호로 변환 되어 네트워크를 통해 전송된다. 네트워크 통신에서는 0과 1만 사용하기 때문에 0과 1로 이루어진 비트열을 전기 신호로 변환하는 작업이 필요하다. 

 

 그렇다면 0과 1로 이루어진 비트열을 전기 신호로 변환하는 작업은 누가 수행할까? OSI 모델에서는 물리 계층이 수행한다. 물리 계층은 컴퓨터와 네트워크 장비를 연결하고 전송되는 데이터를 전기 신호로 변환하는 계층이다. 

 

 

 

 

 그런데 0과 1을 어떻게 전기 신호로 변환할 수 있을까? 각각의 컴퓨터는 네트워크를 통해 데이터를 송, 수신 할 수 있도록 랜 카드가 메인 보드에 포함되어 있다. 이처럼 각각의 컴퓨터는 내장형 랜 카드나 별도의 랜 카드를 가지고 있기 때문에 0과 1의 정보가 컴퓨터 내부에 있는 랜 카드로 전송되고 랜 카드는 0과 1을 전기 신호로 변환한다. 

 

이미지 출처: 위키백과

 


 

   전기 신호의 종류  

 

 전기 신호에는 아날로그와 신호와 디지털 신호가 존재한다. 아날로그 신호는 물결 모양으로 전화 회선이나 라디오 방송에서 사용한다. 디지털 신호는 막대 모양으로 네트워크 데이터 전송에서 사용한다. 

 

 

 

 데이터가 어떻게 전기 신호로 변환되는지 살펴보면 다음 그림과 같이 데이터 송신 측의 0과 1의 비트열 데이터를 전기 신호로 변환하고 이 전기 신호는 네트워크를 통해 수신 측에 도착하고 수신 측은 전기 신호를 0과 1의 비트열 데이터로 복원한다.

 

 

 


 

   네트워크 전송 매체    

 

 전송 매체데이터가 흐르는 물리적인 선로를 말하는데 이는 유선과 무선으로 나뉜다.  그 중 유선에는 트위스트 페어 케이블, 광 케이블 등이 있고 무선에는 라디오파, 마이크로파, 적외선 등이 있다. 

 

 가장 많이 사용되는 트위스트 페어 케이블의 종류에는  UTP 케이블과 STP 케이블이 있다. 또한, 트위스트 페어 케이블은 일반적으로 랜 케이블이라고도 불리는데 랜 케이블의 양쪽 끝에는 RJ-45라고 부르는 커넥터가 붙어 있다. 이 커넥터를 컴퓨터의 랜 포트나 네트워크 기기에 연결할 수 있다.

 

 

 먼저, UTP 케이블은 구리 선 여덟 개를 두 개씩 꼬아 만든 네 쌍의 전선으로 실드가 없는 케이블이다. 실드는 금속 호일이나 금속의 매듭과 같은 것으로 외부에서 발생하는 노이즈를 막는 역할을 한다. UTP 케이블은 실드로 보호되어 있지 않아서 노이즈의 영향을 받기 쉽지만 저렴하기 때문에 일반적으로 많이 사용된다. 

 

 STP 케이블은 두 개씩 꼬아 만든 선을 실드로 보호한 케이블로 UTP 케이블 보단 노이즈의 영향을 매우 적게 받지만 비싸기 때문에 보편적으로 사용하지는 않는다. 

 

 

출처: 링크허브 공식블로그(https://linkhub.tistory.com/85)

 

 그렇다면 구리 선을 두 개를 비틀어 만드는 이유는 무엇일까? 바로 노이즈 때문이다. 노이즈의 영향을 적게 받기 위해 구리 선 두 개를 비틀어 꼬아 케이블을 만든다. 

 



   랜 케이블의 종류   

 

 랜 케이블의 종류에는 다이렉트 케이블과 크로스 케이블이 있다.

 

 다이렉트 케이블은 구리 선 여덟 개를 같은 순서로 커넥터에 연결한 케이블이고 컴퓨터와 스위치를 연결할 때 사용된다. 

 

 크로스 케이블은 구리 선 여덟 개 중 한쪽 커넥터의 1번과 2번에 연결되는 구리 선을 다른 쪽 커넥터의 3번과 6번에 연결한 케이블로 컴퓨터 간 직접 랜 케이블로 연결할 때 사용된다. 

 

 실제로 다이렉트, 크로스 케이블 모두 1, 2, 3, 6번 구리선을 사용하고 나머지 네 개의 선은 사용하지 않는다.

 

 만약 양쪽 컴퓨터에서 1번과 2번으로 데이터를 전송하면 어떻게 될까? 데이터 충돌이 발생한다. 이 때문에 크로스 케이블은 일부로 중간에 전선을 교차시켜 송, 수신 측이 올바르게 연결되도록 돕는다. 

 

 

출처: https://helpdeskgeek.com/networking/connect-two-computers-using-a-crossover-cable/

 

 



   물리 계층의 네트워크 장비   

 

 물리 계층의 네트워크 장비에는 리피터와 허브가 있다. 

 

 리피터전기 신호를 정형(노이즈로부터 복원)하고 증폭하는 기능을 가진 네트워크 중계 장비이다. 이는 멀리 있는 상대방과도 통신할 수 있도록 파형을 정상으로 만드는 기능을 한다. 하지만, 요즘은 네트워크 장비가 리피터 기능을 지원하기 때문에 리피터를 쓸 필요가 없어졌다. 

 

 또한, 허브는 포트를 여러 개 가지고 있기 때문에 랜 케이블을 사용하여 여러 컴퓨터와 허브를 연결하고 통신할 수 있다. 이 때문에 어떤 특정 포트로 부터 데이터를 받는다면 해당 포트뿐만 아니라 나머지 모든 포트에도 받은 데이터를 전송하는 특징이 있다.

 

 예를 들어, 허브에 컴퓨터 A~D가 연결되어 있다고 가정해보자. 컴퓨터 A에서 B로 데이터를 전송하면 허브에 연결되어 있는 컴퓨터 C, D에도 데이터가 전송된다. 하지만 컴퓨터 C와 D에는 불필요한 데이터일 수 있는데 이처럼 허브는 스스로 판단하지 않고, 전기 신호를 모든 포트로 보내서 더미 허브라는 이름으로 불리기도 한다. 이러한 문제점을 해결하기 위해 스위치라고 하는 네트워크 장비가 등장했다. 스위치는 데이터 링크 계층에서 설명하고 여기서는 생략한다. 

 

또한, 허브도 리피터와 마찬가지로 전기 신호를 정형하고 증폭하는 기능을 한다.