본문 바로가기
IT Auditor Study/운영체제

6. Operating System(OS) - 6. 주요용어

by latteart 2024. 4. 16.
반응형

 

Operating System(OS) - 6. 주요용어


운영체제 또는 오퍼레이팅 시스템(operating system, 약칭: OS)은  사용자의 하드웨어, 시스템 리소스를 제어하고 프로그램에 대한 일반적 서비스를 지원하는 시스템 소프트웨어이다. 다음과 같은 순서로 알아볼 계획이다. 
-----------------------------------------------------
1. 개요 
2. 구성요소
3. 역사
4. 종류 
4.1. 임베디드 운영체제 
4.2. 서버 운영체제 
4.3. 모바일 운영 체제 
4.4. 데스크톱 운영체제 
4.4.1. Windows
4.4.2. UNIX
4.4.2.1. macOS
4.4.2.2. Linux
5.시장점유율
6. 주요용어
-----------------------------------------------------


Operating System(OS) - 6. 주요용어


• 매크로(macro)와 서브프로그램(sub program): 반복되는 부분을 분리시켜 놓고 이름을 부여하고 이름을 호출하여 실행할 수 있도록 하는 것으로 매크로는 컴파일 이전에 확장 과정을 거쳐 실행시 빠른 장점이 있으며 서브프로그램은 확장 과정을 거치지 않아 저장 공간을 줄일 수 있다.

• 로더(loader): 외부기억장치로부터 정보들을 주기억 장치로 옮기기 위하여 메모리 할당 및 연결, 재배치, 적재를 담당하는 서비스 프로그램이다.

• 링커(linker): 여러 오브젝트(Object)를 한 개의 실행 가능한 형태의 파일로 작성한다. 일반적으로 다른 곳에서 프로그램루틴이나 컴파일, 어셈블 된 루틴들을 모아 실행 가능한 루틴을 작성한다.

• 오버레이(overlay): 큰 프로그램을 작은 단위의 모듈로 잘라서 필요한 부분만 램(RAM)에 적재하여 실행 할 수 있도록 하는 기법으로 프로그래머가 모듈의 자르는 단위 및 연결 순서를 명시하여야 함으로 사용이 불편하다. 이러한 오버레이의 단점은 가상메모리 기법을 이용해 해결된다.

• 스와핑(swapping): 여러 개의 프로그램을 하나의 메모리에서 실행될 수 있도록 하기 위해 사용하는 기법으로 실행 도중 스와프 아웃(swap out)이 되어 보조기억 장치로 옮겨졌다가 실행 시 스와프 인(swap in)이 되는 것을 반복하며 실행하는 것을 말한다.

• 버퍼링(buffering): 주기억 장치의 일부를 큐 방식(FIFO: First In First Out)으로 동작하는 버퍼로 이용하여 하나의 프로그램에서 CPU 연산과 I/O 연산을 중첩시켜 처리할 수 있게 하 는 방식으로 CPU의 효율을 높이는 방식이다. 버퍼를 2개 또는 그 이상 사용하는 방식을 이용하여 버퍼링의 효과를 높일 수도 있다.

• 스풀링(spooling): 주기억 장치를 이용하는 버퍼링(buffering)은 공간이 작으므로 보조기억장치를 이용하여 여러 개의 프로그램에 대하여 입력과 CPU 작업을 중첩시켜 처리할 수 있게 하는 방식으로 보조기억장치 중에서 직접접근 및 저장(DASD: Direct Access Storage Device)이 가능한 장치인 디스크를 사용한다.

• 프로세스: 실행중인 프로그램, 주기억장치에 저장된 프로그램, PCB(Process Control Block)와 결합된 형태의 코드를 말하는데, PCB란 프로세스가 작업 도중 필요한 정보나 스케줄에 필요한 여러 가지 정보를 기억하고 있는 구조체이다. 작업 스케줄러(job scheduler)에 의해서 생성되어 주기억장치에 진입한다.

• 셸(shell): 사용자의 명령어를 번역하여 실행을 지시하고 결과를 사용자에게 돌려주는 역할을 하는 부분으로 커널과 사용자 사이의 인터페이스 역할을 하는 부분이다. 도스(DOS)에서 command.com이 셸의 기능을 하며 유닉스에서는 여러 종류의 셸이 존재한다. 이러한 셸은 주기억장치에 상주하지 않고 사용자가 요구할 때 메모리로 적재되어 실행이 된다.

• 커널(kernel): 자원을 관리하는 모듈의 집합으로 운영체제 기능의 핵심적인 부분을 모아 놓은 부분이다. 메모리 관리 및 스케줄링 인터럽트 처리 등의 기능을 담당하며 사용자는 직접 커널의 기능을 제어할 수 없으며 단지 셸에 의해 의뢰할 뿐이다. 커널은 항상 필요로 하는 부분이므로 메모리에 적재되어 있다.

• 스레드(thread): 프로세스는 실행 환경부분과 제어부분의 두 부분으로 나눌 수 있는데 스레드란 프로세스의 제어부분만을 말한다. 스레드는 실행에 필요한 최소한의 정보만 가지고 자신에 속해 있는 프로세스의 기억장치나 파일과 같은 실행환경을 다른 스레드와 공유하여 프로세스의 생성과 문맥교환 등의 오버헤드를 줄여 운영체제의 성능을 개선할 수 있게 된다.

• 선점(preemptive) 스케줄링: 특정 프로세스가 중앙처리장치를 효율적으로 사용할 수 없는 시점에 이를 때마다 중앙처리장치의 사용권이 다른 프로세스로 옮겨지는 방식으로 높은 우선순위의 프로세스들이 급하게 실행해야 할 경우에 유용하다.

• 비선점(nonpreemptive) 스케줄링: 어떤 자원이 어떤 프로세스에 할당이 되면 실행을 종료할 때까지 그 프로세스가 중앙처리장치의 사용권을 독점하여 사용하는 것으로 짧은 작업들을 기다리게 되는 경우가 있지만 모든 프로세스 관리에 공정하다.

• 병행(concurrent) 프로세스: 시스템 내에 다수의 프로세스들이 동시에 실행되는 것으로 프로세스들이 시스템 내에 동시에 존재하나 어느 한 순간에 단지 한 프로세스만 CPU에서 실행된다.

• 교착상태(deadlock)(=무한대기): 다중 프로그래밍 환경에서 두 개의 프로세스가 서로 다른 프로세스가 가지고 있는 자원을 기다리고 있으며 자신이 차지하고 있는 자원을 내놓지 않는 현상으로 이 두 프로세스에게는 영원히 처리기를 줄 수 없게 된다.

• 단편화(fragmentation): 연속으로 기억장치를 할당하여 사용할 경우 크기가 맞지 않아서 사용되지 못하는 공간이 생길 수 있는데, 이러한 공간을 단편화 공간이라고 한다.

반응형