'OS overview'에 해당되는 글 1건

  1. 2008.07.19 Chapter 2. OS Overview
2008. 7. 19. 18:18

Chapter 2. OS Overview

Chapter 2.  OS Overview
_________________________


1. 운영체제(OS)란?
 
운영체제(OS)는 사용자 H/W 에 대한 사용자 인터페이스 역할을 가진다. 운영체제의 핵심
(core)은 kernel이고 실제적인 H/W을 제어 하는 역할을 가진다. Shell은 명령어 해석기의
역할을 가지고 나머지 파일과 디렉토리 구조로 구성이 되어 있다.



2. 운영체제의 구조

-------------------------------------
USER
-------------------------------------
       Application(웹브라우저,편집기)   =>  ls, find, .. (명령어)
OS     Shell(sh,csh,ksh,tcsh,zsh,bash)  =>  ksh          (명령어해석기)
       Kernel(unix, genunix)            =>  unix         (커널)
-------------------------------------
H/W                                     =>  disk, monitor(디바이스)
-------------------------------------


컴퓨터의 구성은 하드웨어와 소프트웨어로 나눌수 있다. 하드웨어는 CPU, RAM, Disk 등이고
소프트웨어는 컴퓨터안에서 실행할 수 있는 프로그램을 말한다. 운영체제는 이런 하드웨어
와 소프트웨어를 직접 제어 가능하도록 하는 프로그램이다.


(1). 하드웨어(H/w)


■ CPU(Central Processing Unit)

중앙처리장치는 컴퓨터 하드웨어의 핵심으로서 기억장치로부터 기계어 코드(컴퓨터가 이해
할수 있는 기게어 코드)를 읽어 들여 실행하는 역할을 한다. 다시말하면 컴퓨터내의 모든
제어와 연산을 담당한다. 명령어의 해석과 자료의 연산, 비교 등의 처리를 제어하는 컴퓨
터 시스템의 핵심적인 장치이다. 중앙처리장치의 성능은 컴퓨터의 성능과 직결되며 CPU
내부의 구성에 따라 컴퓨터의 계열이 다양하게 구분된다. 컴퓨터 시스템 전체를 제어하는
장치로서, 다양한 입력장치로부터 자료를 받아서 처리한 후 그 결과를 출력장치로 보내는
일련의 과정을 제어하고 조정하는 일을 수행한다. 모든 컴퓨터의 작동과정이 중앙처리장치
의 제어를 받기 때문에 컴퓨터의 두뇌에 해당한다.

중대형 컴퓨터에서는 이를 중앙처리장치(central processing unit:CPU)라 하지만, 소형 컴
퓨터에서는 때로 마이크로프로세서(micro processor) 또는 줄여서 그냥 프로세서라 부르기
도 하는데, 명칭만 다를 뿐 기본적으로 동일한 기능을 수행한다.


■ RAM(Ramdom Access Memory)

램(RAM)은 일반적으로 메모리 혹은 주기억장치라고 부르는데 중앙처리장치에 의해 접근되
는 기계어 코드와 자료(혹은 데이터)를 저장한다. 주기억장치로 널리 사용되고있는 메
모리로로, Random Access Memory 의 약어이다. 플립플롭으로 만들어진 기억소자를 사용
한다. 기록과 해독의 두 회로가 있어서 정보의 기록, 해독이 가능하고 컴퓨터나 주변 단말
기기의 기억장치에 널리 쓰인다. 종류로는 전원이 연결된 상태에서 일정한 주기마다 리프
레시(refresh) 조작을 해주어야만 정보가 지워지지 않는 DRAM과 전원만 연결되어 있으면
정보가 지워지지 않는 SRAM이 있으며 고밀도 집적회로를 사용하여 소형, 대용량화되고 있
다.

SunOS 5.X은 가상 메모리 운영체제이다. RAM의 사용공간 보다 더 많은 메모리 공간을 사용
하는 프로그램을 실행시켰을 때 사용되는 것이 가상 메모리이다. 가상 메모리는 하드 디스
크에 있는 메모리 공간이며 실제 메모리의 연장 공간처럼 쓰이게 된다.

프로그램은 하드디스크에 저장되며 프로그램이 실행되면 메모리에 복사가 되고 활성화 된
프로그램 동안 프로그램의 일부분이 RAM에 복사횓된다. 작업이 끝날 때 까지 가상 메모리
에 남아 있게 된다.

프로그램이 종료 되면 가상 메모리공간을 다른 프로그램 실행시 덮어 쓰게 되고 이것의
관리를 운영체제가 한다. 만약 전원이 꺼지면 저장하고 있는 모든 가상 메모리의 내용은
없어지게 된다.


■ Hard Disk

하드 디스크는 자기적 매체 장치로서 파일, 디렉토리, 프로그램들등을 저장하는 장치이다.
자성체로 코팅된 원판형 알루미늄 기판에 프로그램이나 데이터를 영구 보관하기 위한 외부
기억장치 자료를 저장할 수 있도록 만든 보조기억장치이다. 디스크가 레코드판처럼 겹
쳐져 있는 것으로, 디스크 위에는 트랙이라고 하는 동심원이 그려져 있다. 이 동심원 안에
데이터를 전자적으로 기록하게 된다. 헤드는 트랙에 정보를 기록하거나 읽어 내는 역할을
한다.

자기디스크 장치가 처음 나타났을 때는 디스크를 사용자가 컴퓨터에 장착하여 사용하게
했다. 그러나 먼지에 오염되거나 사용자의 조작 실수로 자료가 파손되는 일이 잦아서 현
재와 같이 밀봉하는 형태로 바뀌었다. 하드디스크라는 말은 PC가 출현되었을 때 플로피디
스크(FDD)만 사용할 수 있었는데, 점차 용량이 큰 현재의 디스크가 사용되면서 플로피에
상대되는 말로 하드라는 수식어가 붙게 되었다.


■ I/O 장치

입력장치는 컴퓨터에 자료를 입력하기 위한 장치를 말하며, 인풋시스템(Input System)이라
고도 한다. 인간이 정보를 해석하고 기억하는 방식과는 달리 컴퓨터는 0과 1로 정보를 표
시하게 되어 있다. 사람들이 사용하는 문자, 도형, 목소리, 숫자 등의 자료를 읽어 들여
0과 1의 이진수 형태로 바꾸어 컴퓨터가 처리를 할 수 있도록 해주는 역할을 하는 것이 입
력장치이다. 입력장치로는 키보드, 마우스, 조이스틱, 터치스크린, 이미지 스캐너, 디지털
카메라, 광학 마크 판독기(OMR), 바코드 판독기(Bar Code Reader), 자기잉크문자판독기
(MICR)등이 있다.

출력장치는 컴퓨터에서 정보를 처리한 결과를 기계로부터 인간이 알 수 있는 언어(言語)로
변환해서 꺼내는 장치이다. 출력장치는 모니터, 프린터, 종이테이프, 카드천공기, 라인프
린터, 자기테이프등이 있다.
(2). 운영체제

SunOS 운영체제는 다음과 같은 3가지로 구성이 된다.
■ 커널(Kernel)
■ 쉘(Shell)
■ 디렉토리 구조(Directory Structure)


① 커널

커널은 SunOS 운영체제의 핵심 부분으로 컴퓨터의 물리적인 자원을 관리해 주는 역할을 가
지고 다음과 같은 기능등을 가진다.
■ CPU 기능 관리(CPU 스케줄링)
■ 메모리 관리 및 가상메모리 관리
■ 프로세스 관리
■ 파일시스템과 구조 관리
■ 디바이스 관리(주변 장치, 입출력 장치)
■ 기타

커널은 솔라리스가 부팅될 때 가장 먼저 읽혀진다. 솔라리스 커널은 unix, genunix로 구성
되어 있으며 커널을 제외한 다른 특성이 있는 모든 기능들을 모듈(Module) 형태로 제공하
고 있다.


② 쉘(Shell)

쉘은 명령어를 해석하는 부분으로서 사용자와 솔라리스 시스템을 연결시켜 주는 인터페이
스 역할을 한다. 즉 사용자가 입력한 명령어를 해석하여 커널이 이해할 수 있는 명령으로
번역하여 커널에게 넘겨 준다. 그러면 커널이 그것을 수행하고 수행된 결과 값을 쉘에게
다시 넘겨주게된다. 그러면 쉘은 사용자에게 명령어의 결과 값을 돌려 준다. 결국 사용자
의 명령을 해석하는 역할을 한다. 쉘은 이렇게 ㉮명령어를 해석하는 역할외에도 ㉯프로그
램을 할수 있는 특징을 가지고 있다. 쉘의 특성을 이용한 프로그램을 쉘프로그램 또는 쉘
스크립트라고 한다.

솔라리스에서는 6가지 쉘을 제공해 주고 있다. 기본 쉘(Basic Shell)과 추가적인 쉘이다.

솔라리스 9에서의 기본 쉘
  ■ Bourne Shell
  ■ C Shell
  ■ Korn Shell
솔라리스 9에서의 추가적인 쉘
  ■ Bash
  ■ Z Shell
  ■ TC Shell

솔라리스의 추가적인 쉘은 솔라리스 8에서 처음 내장이 되었으며 그 전까지는 기본 쉘 3가
지만 제공하고 있었다. 실제적으로 다른 디렉토리 안에서 많은 쉘의 이름이 존재하지만 실
제 이 기본 쉘과 추가적인 쉘에 링크 되어진 상태이다.

쉘의 역할을 정리하여 보면 다음과 같다.
① 입력을 읽고 해당 명령행을 분석한다.
② 특수 문자들을 평가한다.
③ 파이프, 리다이렉션, 백그라운드 프로세스를 설정한다.
④ 시그널을 처리한다.
⑤ 프로그램을 올바르게 실행시킨다.

다음은 쉘의 발전 과정에 대한 그림이다.

sh --------------> ksh --------------> zsh

         csh ------------------------> tcsh

                                       bash(sh + csh + ksh)

         [그림] 쉘의 발전 과정
출처 : http://cafe.daum.net/bscsolaris