1. OS 기능
컴퓨터의 기본구성
컴퓨터는 제어장치, 연산장치, 기억장치, 입력장치, 출력장치로 구성되어있다.
제어장치와 연산장치(연산유닛)은 CPU에 해당한다. 각 프로그램의 명령과 사친연산 및 논리연산을 수행한다.
기억장치는 메모리(주기억 장치)로 데이터나 프로그램의 명령을 읽어들여 기억한다.
입력장치는 데이터나 프로그램을 입력하기 위해 사용하는 키보드나 마우스를 말한다. 출력장치는 데이터를 출력하는 디스플레이나 프린터 등을 말한다.
OS의 핵심부분을 담당하는 부분을 커널(Kernel:핵)이라고 하며, 커널을 둘러싸듯이 사용자에게 모양을 제공하는 부분을 쉘(Shell:껍질)이라고 한다.
중앙연산장치 (CPU) 외부에서 정보를 입력받아 기억하고 명령을 해석하여 외부로 출력한다.
커널(Kernel) 사용자의 조작을 처리하며 OS가 움직일 수 있도록 하는 OS의 핵심부분이다.
소프트웨어의 분류
OS를 기본 소프트웨어라고 한다. 소프트웨어는 미들웨어와 응용 소프트웨어로 나누기도 한다. 기본 소프트웨어는 하드웨어에 의존하지 않고 애플리케이션을 실행할 수 있는 환경을 제공한다. OS나 BIOS가 이에 해당한다.
미들웨어는 OS와 애플리케이션 사이에 위치하는 소프트웨어이다.
각각의 범용적인 기능을 소프트웨어화한 것이다.
응용소프트웨어는 고유의 기능을 가진 일반적인 애플리케이션을 말한다.
OS에 맞는 애플리케이션을 개발하려면 API라는 OS가 공개하는 기능을 이용하면서 프로그래밍을 해야한다. (API:Application Programming Interface)
디바이스 드라이버
주변장치를 사용하려면 디바이스 드라이버라는 OS와 하드웨어를 중개해주는 소프트웨어가 필요하다.
Plug and play
주변장치가 컴퓨터에 접속되면 자동으로 인식하여 최적의 디바이스 드라이버가 자동으로 심어진다.
구조
응용소프트웨어/쉘 API 커널 디바이스 드라이버 BIOS 하드웨어
컴퓨터의 기동
기동까지의 흐름
컴퓨터의 전원을 넣은 후부터 운영체제가 기동되기까지 자동으로 처리되는 흐름을 부팅이라고 한다. (Booting)
단계
- 컴퓨터 전원을 켠다
- BIOS 기동(메모리나 하드웨어를 체크한다)
- 부팅 로더 읽기/기동
- OS 기동
Load란?
하드디스크와 같은 기억장치로부터 데이터를 메모리로 읽어들이는 것
부팅 로더(Booting Loader)
부팅 로더는 하드디스크상에 있는 OS를 기동시키기 위한 프로그램이다. 하드디스크에 있는 MBR(Master Boot Record)라는 특별 영역에서 실행된다.
부팅로더가 기동되면 OS를 기동시켜준다. 부팅로더는 MBR의 맨 처음에 놓여있다. 부팅로더는 IPL(Initial Program Loader)라고 한다.
BIOS(Basic Input/Output System)
BIOS는 컴퓨터에 접속되어있는 기기를 제어하는 프로그램군이다. OS를 기동시키기 전에 메모리나 하드웨어 등을 체크한다. 컴퓨터의 전원을 켠 후에 바로 특정 키를 누르면 BIOS 화면이 나타난다.
화면 아래에 "Please F2 to Enter Setup"이라는 문구가 표시되면 빨리 F2를 누른다. F2나 Delete키가 사용된다
BIOS 화면에서 하는 일
시스템 파라미터 설정(날짜,시간 설정) 전원관리 CPU/메모리 설정(주파수나 전압 등을 설정) 전원관리(절전모드 설정) *주변기기 설정(사운드, USB설정)
기동순서 설정하기
OS가 없는 컴퓨터에 OS를 설치할 때는 OS 디스크 등을 이용한다. 기동순서는 BIOS에서 설정할 수 있다.
OS 로그인하기
*로그인하기 사용자명과 비밀번호를 입력하여 OS나 네트워크 이용을 인증받는 것을 로그인이라고 한다.
*로그아웃하기 사용자가 로그인되어있는 OS나 네트워크에서 이용을 종료하는 것을 로그아웃이라고 한다.
*다중 사용자 OS에는 한대의 컴퓨터를 여러명의 사용자가 공유할 수 있는 기능이 있다. 로그인한 후에는 바탕화면 등과 같은 개인 설정을 변경해도 다른 사용자에게 영향을 주지 않는다.
*관리자와 권한 사용자는 관리자와 일반사용자로 나뉜다. 관리자는 사용자 계정을 생성하거나 권한을 설정할 수 있다. OS 전체에 영향을 주는 설정은 관리자 권한으로 수행하게 된다.
커널(Kernel)
사용자의 조작을 처리하여 OS가 움직일 수 있도록 지시하는 부분이다. 커널은 사용자에게 보여지지 않는다.
입력:사용자가 명령을 내린다. 쉘:사용자의 지시를 해석한다. 커널:하드웨어에게 지시를 한다. 출력:디스플레이 등에 결과를 표시한다.
시스템 콜(System call)
커널이 쉘과 같은 프로그램에게 제공하는 기능을 말한다. 프로그램은 커널에게 처리를 의뢰하고 실제 처리는 커널이 수행한다.
프로그램이 시스템콜을 하면 커널은 CPU에게 계산을 시키거나 메모리할당을 관리하는 등의 실행을 한다.
쉘(Shell)
키보드 입력과 같은 사용자 조작을 커널에게 전달한다. 쉘은 화면에 보이는 부분이다.쉘은 사용자의 입력을 해석하고 커널은 실행한다.
쉘의 기본 기능
배치처리(일괄 처리를 실행한다) 히스토리기능(입력 이력을 기억한다) 알리아스기능(파일에 별명을 붙인다) 잡 컨트롤(프로그램의 실행이나 정지를 수행한다) 리다이렉트/파이프(결과의 출력처를 변경한다) 와일드카드 전개 (여러개의 파일에 동일한 처리를 수행한다)
쉘 인터페이스
CUI (Character User Interface)
키보드의 입력 내용이나 계산 결과를 디스플레이상에 문자로 표시한다. 쉘은 OS조작을 하기 위해 명령이라는 영숫자 문자열을 사용한다.
GUI (Graphic User Interface)
디스플레이상의 창, 메뉴, 버튼과 같은 그래픽을 키보드나 마우스로 조작한다. Window탐색기는 Windows OS의 쉘. 바탕화면의 표시나 파일검색을 수행한다.
디바이스
디바이스는 CPU나 메모리, 하드디스크와 같은 각종 기기를 총칭하는 말이다. OS는 각 디바이스를 관리하는 기능을 가지고 있다.
디바이스는 입력 장치와 출력 장치로 나뉜다.
입력장치:사용자가 컴퓨터를 움직이게 하기 위한 지시나 입력한 데이터를 컴퓨터에게 보내기 위한 장치
마우스 스캐너 터치패드 키보드 트랙볼 조이스틱
출력장치: OS 또는 실행하는 프로그램으로부터 데이터를 받아 사용자가 인식할 수 있도록 표시하는 장치
액정 디스플레이 CRT 디스플레이 *프린터
미디어
디바이스와 함께 이용하는 데이터를 기록해두는 매체
CD/DVD/블루레이 디스크(BD) USB메모리 SD메모리카드 플로피디스크 *MO디스크
디바이스 드라이버(device driver)는 디바이스를 제어하는 프로그램이다.
컴퓨터에 접속된 디바이스를 OS에서 이용하려면 디바이스 드라이버가 필요하다.
*마우스 드라이버, 프린터 드라이버, 디스플레이 드라이버
플러그 앤 플레이(Plug and Play, PnP)
디바이스를 컴퓨터에 접속했을 때 디바이스 드라이버의 시스템 설치나 시스템 설정을 자동으로 수행하는 기능이다. 플러그앤플레이를 처리하는 기기와 드라이버가 필요하다. 꽂으면 바로 실행된다는 의미.
I/O 포트(Input/Output)
I/O 포트는 디바이스와 컴퓨터간의 데이터를 입출력하기 위한 창구이다.
PS/2 포트 : 마우스나 키보드 연결 시리얼 포트 : 모뎀 등을 연결 USB 포트 : USB 대응 기기를 연결 패러럴 포트 : 프린터나 스캐너를 연결 *게임 포트 : 조이스틱 연결
I/O 주소공간
I/O주소공간은 디바이스에 대한 명령이나 데이터 송수신에 사용되는 메모리 안의 영역을 뜻한다. 각 디바이스에 할당된 주소를 I/O 포트 주소라고 한다.
I/O 주소 방식
I/O 주소 공간에 명령이나 데이터를 써넣음으로써 디바이스를 제어하는 것이다.
디바이스의 컨트롤러에는 명령이나 데이터를 주고 받기 위한 메모리가 포함되어있다.
키보드 컨트롤러의 메모리에 명령이나 데이터가 기록되면 I/O 주소공간에도 똑같이 기록되어 OS에게 전달된다.
기억장치
레지스터(Register)
CPU안에 일시적인 기억 장치가 있다. CPU가 연산한 결과를 저장한다. 메인 메모리와 비교하면 용량은 적으나 고속으로 작동한다.
내부기억
CPU가 직접 제어할 수 있는 메모리에 프로그램이나 데이터를 저장한다. 컴퓨터의 전원을 끄면 저장된 데이터는 사라진다.
자주 사용하는 명령은 CPU 안에 넣어두고 고속으로 처리하는데 이것을 캐시(Cache)라고 한다.
외부기억
하드디스크와 미디어와 같이 데이터를 저장해두는 장치. 컴퓨터의 전원을 꺼도 데이터는 사라지지 않는다. 외부 기억안에도 고속화를 위한 캐시 메모리가 있는 경우가 있다.
엑세스 속도와 용량의 관계
CPU와 같은 처리 장치의 연산 처리와 비교했을 때, 기억 장치의 액세스는 상대적으로 느리기 때문에 캐시라는 저용량이지만 고속인 메모리를 처리장치와 기억장치 사이에 놓고 성능차이를 완화시킨다.
각 기억장치의 액세스 속도와 용량의 관계
<빠름------------ 느림> CPU[CPU연산유닛/레지스터/캐시메모리] > 내부기억[메인메모리] > 외부기억[하드디스크, 광디스크]
OS의 대표적인 기능
클립보드
텍스트 데이터, 그림을 공유 메모리 영역에 일시적으로 저장하는 기능.
이 기능을 가진 OS는 복사, 잘라내기, 붙여넣기 기능을 사용해서 다른 애플리케이션 간에 데이터를 주고받을 수 있다.
저장된 데이터는 복사나 잘라내기를 할 때마다 덮어 씌워진다. 컴퓨터의 전원을 끄면 데이터는 사라진다.
화면보호기(Screen Saver)
컴퓨터에 일정시간동안 사용자의 조작이 없는 경우 디스플레이 화면의 형광 연소를 막기 위해 애니메이션을 자동으로 재생시키는 기능. 액정 디스플레이는 형광연소가 잘 일어나지 않는다.
글꼴
font 는 OS 상에서 사용되는 문자 데이터 또는 서체를 말한다. 글꼴은 파일로 제공되므로 OS에 설치하여 추가할 수 있다.
*한글 글꼴의 폭 등폭글꼴 , 프로포지셔널 글꼴(문자에 따라 폭이 다르다)
*글꼴의 처리 비트맵 글꼴 : 고속 표시, 작은 문자에 유리
아웃라인 글꼴 : 확대/축소 OK
전원관리
OS에는 소비 전력을 절약하기 위해 디스플레이나 하드디스크의 전원을 자동으로 꺼주는 절전모드기능이 마련되어있다.
키보드를 조작하면 원래 화면으로 복귀한다. 이것을 Resume이라고 한다.
하이퍼네이션(정지상태)
주전원이 OFF가 되고 메모리상의 작업상태는 하드디스크에 저장된다.
프로그래밍
컴퓨터가 무엇인가를 처리하도록 하기 위한 절차를 기술하는 것이다.
기계어와 어셈블리언어
기계어 : CPU가 직접 실행할 수 있는 명령 어셈블리 언어 : 기계어와 1대1로 대응하는 짧은 영단어와 수치를 조합한 명령.
기계어와 어셈블리 언어는 저급언어라고도 한다.
어셈블러의 영단어 부분을 니모닉(mnemonic)이라고 한다.
기계어 : 011001111
어셈블리언어 : MOV AX, 1 MOV DX 3 ADD AX, DX
고급언어
C언어와 같이 인간이 이용하는 언어에 가까운 형태로 표시한 명령을 가지고 있는 프로그래밍 언어를 고급언어라고 한다. 컴파일러 또는 인터프리터라 불리는 소프트웨어로 기계어 실행 프로그램으로 변환한다.
C 언어 프로그램
#include <studio.h>
main()
{
printf("hello\nWorld!\n");
}
위 프로그램을 컴파일러나 인터프리터를 거치면 기계어로 변환된 실행프로그램이 생성된다.
컴파일러는 명령을 일괄 변환한 후 실행하는 반면, 인터프리터는 한 명령씩 변환하면서 실행한다.
API (Application Programming Interface)
각OS에는 윈도우 조작이나 그래픽 묘사와 같은 기능을 프로그램에서 이용할 수 있도록 마련되어있다. API를 이용하여 OS에 특화된 프로그램을 만들 수 있다.