OS 관련 용어
BIOS
컴퓨터에 접속된 기기를 제어하는 프로그램군을 말한다.
OS를 기동시키기 전에 메모리나 하드웨어 등을 체크한다. 컴퓨터의 전원을 넣은 후에 특정 키를 누르면 BIOS 화면이 나타난다.
cf.) BIOS의 기능
1) 시스템 파라미터 설정
2) 전원 관리
3) CPU/메모리 설정
4) 주변 기기 설정
마더보드(Mother board)
메인보드라고도 하며, 컴퓨터를 작동하기 위한 부품 등을 꽂는 회로기판이다.
CPU나 메모리, 하드디스크 등 컴퓨터를 구성하는 부품을 접속하고 데이터 처리와 부품의 제어를 수행하는 기판이다.
CPU
CPU라고 하며, 외부에서 정보를 입력받아 기억하고 명령을 해석하여 외부로 출력한다.
컴퓨터의 작동을 제어하거나 연산 처리를 수행하는 장치로, 중앙연산처리 장치라고 하며 인간의 최에 해당한다. 열이 발생하므로 냉각용 쿨러 밑에 장착한다.
메모리
입력된 명령이나 프로그램, 데이터, 처리한 결과 등을 일시적으로 기억하는 장치로, 메인 메모리 또는 주기억 장치라고도 하며 메모리에 기억된 정보는 컴퓨터의 전원을 끄면 사라진다.
하드디스크
대용량 기억 장치로, 보조 기억 장치 또는 외부 기억 장치라고도 한다. 메인 메모리와 달리 컴퓨터의 전원을 꺼도 정보가 사라지지 않는다.
컴퓨터 아키텍처
주로 CPU의 종류를 가리키는 것으로, x86이나 x64등을 말한다.
OS는 컴퓨터의 아키텍처별로 만들어집니다. 여기서 말하는 아키텍처란, 주로 CPU의 종류를 가리키는 것으로, 그 종류에는 x86 x64 등이 있다.
cp.) x86이나 x64는 컴퓨터의 두뇌인 CPU의 시리즈명이다. x86은 주로 32비트 CPU x64는 x86을 확장한 64비트 CPU를 가리키는 것으로 컴퓨터의 구조(아키텍처)를 크게 구분한다.
커널(Kernel)
사용자의 조작을 처리하여 OS가 움직일 수 있도록 OS의 핵심 부분이다. . 커널은 사용자에게 보이지 않는다.(커널은 하드웨어에게 지시를 한다.)
CPU에게 계산을 시키거나 메모리 할당을 관리하는 역할은 커널이 담당한다.
쉘(Shell)
사용자의 지시를 해석해서 커널에게 전달하는 것으로 화면에 보이는 사용자 인터페이스 부분이다.(쉘은 사용자의 지시를 해석한다.)
쉘은 키보드 입력과 같은 사용자 조작을 커널에 전달한다. 쉘은 화면에 보이는 부분이다.
cf.) Windows나 Mac OS, Linux와 같은 OS는 다양한 모습과 조작감을 갖고 있는데, 중요한 것은 그 안의 내용이다. 이런 OS의 핵심 부분을 담당하고 있는 부분을 커널이라고 하며, 커널을 둘러 싸듯이 사용자에게 ‘모양’을 제공하는 부분을 쉘(shell:껍질)이라고 한다.
사용자 명령-> 쉘이 사용자의 지시 해석-> 커널이 하드웨어에 지시-> 결과 출력
쉘 인터페이스
- CUI(Character User Interface)
키보드의 입력 내용이나 계산 결과를 디스플레이상에 ‘문자’로 표시한다. 쉘은 OS조작을 하기 위해 명령이라고 하는 영숫자 문자열을 사용한다.
- GUI(Graphic User Interface)
디스플레이상의 ‘창’, ‘메뉴’, ‘버튼’과 같은 그래픽을 키보드나 마우스로 조작한다.
미들웨어(Middleware)
OS와 애플리케이션 사이에서 데이터를 주고받을 수 있도록 중개하는 소프트웨어이다.
API(Application Programing Interface)
OS나 프로그래밍 언어가 제공하는 기능을 애플리케이션에서 사용할 수 있도록 만든 인터페이스이다.
부팅(Booting)
컴퓨터의 전원을 넣은 후부터 운영제제가 기동되기까지 자동으로 처리되는 것을 부팅이라고 한다.
로드(Load)
하드디스크와 같은 기억 장치로부터 데이터를 메모리로 읽어들이는 것을 로드라고 한다.
부팅로더(Booting Loader)
부팅로더는 하드디스크상에 있는 OS를 기동시키기 위한 프로그램으로, 하드디스크에 있는 MBR(Master Boot Record)이라는 특별한 영역으로부터 실행된다. 부팅로더가 기종되면 OS를 기동 시켜준다.
디바이스
디바이스는 CPU나 메모리, 하드디스크와 같은 각종 기기를 총칭하는 말이다.
OS는 각 디바이스를 관리하는 기능을 가지고 있다. 디바이스는 크게 입력 장치와 출력 장치로 나눌 수 있다.
- 입력장치: 사용자가 컴퓨터를 움직이게 하기 위한 지시나 입력한 데이터를 컴퓨터에게 보개기 위한 장치이다.
ex.) 마우스, 스캐너, 키보드 등
- 출력장치: OS 또는 실행하고 있는 프로그램으로부터 데이터를 받아 사용자가 인식할 수 있도록 인식할 수 있도록 표시하는 장치이다.
ex.) 액정 디스플레이, 프린터 등
디바이스 드라이버
디바이스 드라이버는 디바이스를 제어하는 프로그램이다. 컴퓨터에 접속되어 있는 디바이스를 OS에서 이용하려면 디바이스 드라이버가 필요하다.
디바이스의 사양은 제조업체나 기종에 따라 다르기 때문에 각 디바이스용 디바이스 드라이버를 OS에 설치한다.
ex.) 마우스 드라이버, 프린터 드라이버, 디스플레이 드라이버 등
플러그 앤 플레이
디바이스를 컴퓨터에 접속시켰을 때 디바이스 드라이버의 시스템 설치나 시스템 설정을 자동으로 수행하는 기능이다. 플러그 앤 플레이를 처리하는 기기와 드라이버가 필요하다.
레지스터
CPU안에는 레지스터라 불리는 일시적인 기억장치가 있어서 CPU가 연산한 결과를 저장한다. 메인 메모리와 비교하면 용량은 적지만 상당히 고속으로 작동한다.
내부 기억
CPU가 직접 제어할 수 있는 메모리에 프로그램이나 데이터를 저장한다. 컴퓨터의 전원을 끄면 저장된 데이터는 사라진다.
외부 기억
하드디스크나 미디어와 같이 데이터를 저장해 두는 장치를 말한다. 컴퓨터의 전원을 꺼도 데이터는 사라지지 않는다.
캐시
자주 사용하는 명령은 CPU안에 넣어두고 고속으로 처리하는데, 이것을 캐시라고 한다.
미디어
디바이스와 함께 이용하는 데이터를 기록해 두는 매체를 미디어라고 한다.
ex.) CD, USB 메모리, SD 메모리 카드 등
프로세스
프로그램의 실행 단위로, 메모리상에 할당된 프로그램을 말한다.
cp.) 메모리상에 할당된 프로그램을 ‘프로세스’라고 한다. 프로세스에는 ‘실행 상태’, ‘실행 가능 상태’, ‘대기 상태’가 있으며, 상황은 시시각각으로 변한다.
cp2.) 사용자가 프로그램을 실행하며 OS는 그 내용을 메모리상으로 읽어들여 처리를 실행한다.
이 메모리상에 할당된 프로그램을 ‘프로세스’라고 한다.
인터럽트(interrupt)
실행 중인 프로그램을 중단하고 우선순위가 높은 다른 프로그램에게 CPU를 할당하여 실행하는 것을 말한다.
- 내부 인터럽트
1) 프로그램 인터럽트: 오버플로어(Overflow: 계산 시 자리 넘침)로 인해 쓰기가 허가되지 않은 메모리 영역에 액세스했을 때 프로그램 인터럽트가 발생한다
-> 오버플로우가 발생한 것을 OS에게 알린다.
- 외부 인터럽트: 외부 인터럽트는 주변기기의 입출력 동작이나 하드웨어 고장, 오작동으로 인해 일어나는 인터럽트이다.
1) 기계 체크 인터럽트: 전원 이상이나 하드웨어에 장애가 발생했을 때 기계 체크 인터럽트가 발생한다. 인터럽트 중에서 가장 우선된다.
-> 하드웨어에 장애가 발생한 것을 OS에게 알린다.
2) 타이머 인터럽트: 일정 시간 또는 일정 시간마다 하드웨어로부터 발생하는 인터럽트를 타이머 인터럽트라고 한다.
-> 시간이 경과했다는 것을 OS에게 알린다.
3) 입출력 인터럽트: 주변 기기의 입출력 동작이 완료되었을 때와 같이 상태가 변화했을 때 입출력 인터럽트가 발생한다.
-> 입출력 동작의 상태가 바뀌었다는 것을 OS에게 알린다.
4) 콘솔 인터럽트: 사용자가 키보드와 같은 입출력 장치를 조작하면 콘솔 인터럽트가 발생한다.
-> 사용자로부터 입력이 있었다는 것을 OS에게 알린다.
멀티태스킹
OS 관리하에서 여러 개의 태스크(프로세스)가 병행하여 작동하는 것으로 태스크를 순서대로 CPU에 할당하고 있기 때문에 여러 개의 태스크가 동시에 작동하고 있는 것처럼 보인다.
스케줄링
OS가 여러 개의 프로세스를 처리할 때 CPU에게 할당할 순서를 정하는 것이다.
데드락(Dead Lock)
2개의 프로세스가 공유 자원을 잠근 채 서로의 공유 자원을 액세스할 때 양쪽 프로세스가 둘 다 영구적으로 대기상태가 되는 것을 말한다.
즉, 두 쓰레드가 자원을 점유한 상태에서 서로 상대편이 점유한 자원을 사용하려고 기다리느라 진행이 멈춰있는 상태를 말한다.
스풀(Spool)
CPU로부터 입출력 장치로 가는 명령을 메모리와 같이 비교적 고속인 기억 장치에 일시적으로 저장하는 것을 ‘스풀’이라고 한다. 예를 들어 프린터는 CPU와 비교해서 처리 속도가 느리므로 스풀을 사용하여 CPU의 처리와 입출력 종작의 처리의 차이를 완화시킬 수 있다.
디스패치(dispath)
OS가 가장 우선순위가 높은 실행 가능 상태의 프로세스에 대해 CPU의 사용 권한을 할당하는 것을 ‘디스패치’라고 한다.
프리엠션(Preemption)
인터럽트에 의해 CPU의 할당을 해제하는 것을 말한다.
트랙(Track)
하드디스크의 기록면으로, 동심원 형태로 분할된 영역을 말한다.
섹터(Sector)
트랙을 다시 분할한 영역으로, 자기 디스크의 경우 섹터는 보통 512byte의 영역을 가진다.
파일 시스템
기억 장치에 파일이나 디렉터리를 기록하는 방법으로, OS에 따라 다양한 파일 시스템이 있다.
스레드
프로세스 안의 프로그램 실행의 흐름을 스레드라고 한다. 스레드는 분기가 가능해서 여러 개의 스레드를 동시에 실행할 수 있다.
RAM(Random Acess Memory)
데이터의 읽기 쓰기가 가능한 메모리로, 컴퓨터의 전원을 끄면 기록한 내용이 사라진다.
ROM(Read Only Memory)
기본적으로 데이터 읽기 전용 메모리로, 컴퓨터의 전원을 꺼도 기록한 내요이 사라지지 않는다.
보조기억장치
하드디스크와 같이 프로그램이나 데이터를 저장하는 외부 기억 장치로, 메모리에 비해 속도가 느리다.
캐시 메모리
속도가 느린 하드디스크의 결점을 보완하기 위해 자주 참조하는 프로그램이나 데이터를 일시적으로 읽어들이기 위한 메모리를 말한다.
가상 메모리
하드디스크 안에 페이징 파일을 작성한 후 이 파일과 메인 메모리를 합쳐 가상의 메모리 영역으로 간주하는 것을 말한다.
힙
힙(Heap)은 파일로부터 읽어들인 테이터나 네트워크상에서 수신한 데이터를 저장할 때와 같이 필요한 만큼만 확보하여 사용하는 메모리 영역이다. 필요가 없어지면 해제한다.
스택
스택은 프로그램 실행 중에 이용하는 변수의 내용을 일시적으로 저장하는 메모리 영역이다. 스택은 프로그램의 한 단위가 시작될 때 자동적으로 확보되고 처리가 종료되면 자동으로 해제된다.
가비지 컬렉션
힙 영역이 가득 차서 액세스 할 수 없을 때는 불필요한 메모리 영역을 자동으로 해제하는데, 이를 가비지 컬렉션이라고 한다.