반응형
- 프로시저 (Procedure) → 루틴, 서브루틴, 함수와 같은 뜻으로 사용되며 하나의 프로시저는 특정 작업을 수행하기 위한 프로그램의 일부이다. 또는 어떤 행동을 수행하기 위한 일련의 작업 순서를 말한다.
- 스풀 (Spool) → 프로그램과 이를 이용하는 I/O(입출력) 장치와의 속도 차를 극복하기 위한 장치로 대부분 하드 디스크가 중재한다.
- 버퍼링 (Buffering) → CPU와 입출력 장치와의 속도 차이를 줄이기 위해 메모리가 중재한다. 버퍼링은 한 레코드를 읽어서 CPU가 그것에 대한 작업을 시작함과 동시에 입출력 장치가 필요한 레코드를 미리 읽어 CPU에 저장해 두고 CPU가 필요한 레코드를 읽기 위해 기다리는 일이 없도록 한다.
- 임계구역 (Critical Section) → 임계 구역(critical section) 또는 공유변수 영역은 병렬컴퓨팅에서 둘 이상의 스레드가 동시에 접근해서는 안되는 공유 자원(자료 구조 또는 장치)을 접근하는 코드의 일부를 말한다. 임계 구역은 지정된 시간이 지난 후 종료된다. 때문에 어떤 스레드(태스크 또는 프로세스)가 임계 구역에 들어가고자 한다면 지정된 시간만큼 대기해야 한다. 스레드가 공유자원의 배타적인 사용을 보장받기 위해서 임계 구역에 들어가거나 나올때는 세마포어 같은 동기화 매커니즘이 사용된다.
- 상호배제 (Mutual Exclusion) → 동시성 프로그래밍에서 공유 불가능한 자원의 동시 사용을 피하기 위해 사용되는 알고리즘으로, 임계 구역 (critical section)으로 불리는 코드 영역에 의해 구현된다.
- 세마포어 (Semaphore) → 에츠허르 다익스트라가 제안한 교착 상태에 대한 해법으로 두개의 Atomic한 함수로 제어되는 정수 변수로 멀티프로그래밍 환경에서 공유자원에 대한 접근 제어를 하는 방식으로 1개의 공유되는 자원에 제한된 개수의 프로세스, 또는 스레드만 접근할 수 있도록 한다. 세마포어의 카운트는 1 이상이며 카운트를 조절하여 진입 가능한 프로세스/스레드 수를 조절할 수 있다. 세마포터 카운트가 항상 1인 것은 아니다.
- 기아상태 (Aging) → 프로세스가 끊임없이 필요한 컴퓨터 자원을 가져오지 못하는 상황으로, 이러한 자원 없이는 처리를 끝낼 수 없는 병행 컴퓨팅에서 마주치는 문제이다. 기아 상태는 스케줄링이나 상호 배제 알고리즘의 오류에 기인하지만 자원 누수에 의해 일어날 수도 있으며 포크 폭탄과 같은 서비스 거부 공격을 통해 고의적으로 발생할 수도 있다.
- 코어 (Core) → 프로세서에서 코어는 주요 연산회로입니다. 싱글코어는 말 그대로 하나의 연산회로가 내장되어있는 것이고 듀얼코어는 두 개의 연산회로가 내장된 것을 뜻합니다. 또, 여러 개의 코어를 가진 프로세서를 멀티 프로세서라고 합니다.
- 프로그램 (Program) → 프로그램은 일반적으로 보조기억 장치에 저장된 실행코드 즉, 생명이 없는 상태를 말합니다.
- 프리징 (freezing) → 컴퓨터 환경에서 하나의 컴퓨터 프로그램나 시스템 전체가 입력에 대한 응답을 중단할 때 일어난다. 멈춰버린 프로그램에 속한 모든 창이 움직이지 않지만 마우스 커서는 화면에서 움직일 수 있지만 키보드 입력이나 마우스 클릭을 통해서 프로그램의 창에 어떠한 영향도 줄 수 없다.
- 뮤텍스 (Mutual Exclusion object) → 스레드들 간에서 공유가 배제되는 객체이며. 파일과 같은 공유 자원이 수행 중 오직 한 프로그램이나 스레드에게만 소유되어야 할 필요가 있을 때 그 자원에 대한 뮤텍스 객체를 생성시킨다. 뮤텍스가 비신호 상태이면 프로그램은 자원을 점유하여 사용한 후 이를 반환하고, 다른 프로그램 또는 다른 스레드가 자원을 사용 중 즉, 뮤텍스가 신호 상태이면 대기 상태로 들어가 끝나기를 기다린다. 뮤텍스는 여러 면에서 크리티컬 섹션과 비슷하고, 대신 사용할 수도 있지만 이름을 가질 수 있다는 점에서 크리티컬 섹션보다 우월하다.
- 커널 (Kernel) → 컴퓨터 운영체계의 가장 중요한 핵심으로써 운영체계의 다른 모든 부분에 여러 가지 기본적인 서비스를 제공한다. 일반적으로 커널에는 종료된 입출력연산 등 커널의 서비스를 경쟁적으로 요구하는 모든 요청들을 처리하는 인터럽트 처리기와 어떤 프로그램들이 어떤 순서로 커널의 처리시간을 공유할 것인지를 결정하는 스케줄러, 그리고 스케줄이 끝나면 실제로 각 프로세스들에게 컴퓨터의 사용권을 부여하는 수퍼바이저(supervisor) 등이 포함되어 있다. 또한 커널은 메모리나 저장장치 내에서 운영체계의 주소공간을 관리하고, 이들을 모든 주변장치들과 커널의 서비스들을 사용하는 다른 사용자들에게 고루 나누어주는 메모리관리자를 가지고 있다. 커널의 서비스는 운영체계의 다른 부분이나, 흔히 시스템 호출이라고 알려진 일련의 프로그램 인터페이스들을 통해 요청된다.
- 셸 (Shell) → 이용자와 시스템 간의 대화를 가능하게 해 주며, 이용자가 입력한 문장을 읽어 그 문장이 요청하는 시스템 기능을 수행하도록 해 주는 명령 해석기. 셸은 핵심부와 같이 주기억 장치에 상주하는 것이 아니고 보조 기억 장치에 교체될 수 있다.
- 비선점형 스케줄링 (Non-preemptive Scheduling) → 어떤 프로세스가 CPU를 할당 받으면 그 프로세스가 종료되거나 입출력 요구가 발생하여 자발적으로 중지될 때까지 계속 실행되도록 보장한다. 순서대로 처리되는 공정성이 있고 다음에 처리해야 할 프로세스와 관계없이 응답 시간을 예상할 수 있으며 선점 방식보다 스케줄러 호출 빈도가 낮고 문맥 교환에 의한 오버헤드가 적다. 일괄 처리 시스템에 적합하며, CPU 사용 시간이 긴 하나의 프로세스가 CPU 사용 시간이 짧은 여러 프로세스를 오랫동안 대기시킬 수 있으므로, 처리율이 떨어질 수 있다는 단점이 있다.
- 선점형 스케줄링 (Preemptive Scheduling) → 어떤 프로세스가 CPU를 할당받아 실행 중에 있어도 다른 프로세스가 실행 중인 프로세스를 중지하고 CPU를 강제로 점유할 수 있다. 모든 프로세스에게 CPU 사용 시간을 동일하게 부여할 수 있다. 빠른 응답시간을 요하는 대화식 시분할 시스템에 적합하며 긴급한 프로세서를 제어할 수 있다. '운영 체제가 프로세서 자원을 선점'하고 있다가 각 프로세스의 요청이 있을 때 특정 요건들을 기준으로 자원을 배분하는 방식이다.
- 정적 라이브러리 (Static Library) → 프로그램 빌드 시 라이브러리가 제공하는 모든 코드를 실행 파일에 넣는 방식으로 사용되는 라이브러리의 형태입니다. 시스템 환경 등 외부 의존도가 낮은 장점이 있으며 코드 중복 등 메모리 효율성이 떨어지는 단점이 존재합니다.
- 동적 라이브러리 (Dynamic Library) → 프로그램 실행 시 필요할 때만 DLL이라는 함수 정보를 통해 참조하여 사용되는 라이브러리의 형태입니다. 메모리 효율성의 장점은 있지만, 외부 의존도가 높아진다는 단점이 존재합니다.
- PCB (Process Control Block) → 운영체제에서 프로세스에 대한 메타데이터를 저장한 데이터를 말하며, 프로세스 제어 블록이라고도 합니다.
- 메타데이터 (Metadata) → 데이터에 관한 구조화 된 데이터이자 데이터를 설명하는 작은 데이터이며, 대량의 정보 가운데에서 찾고 있는 정보를 찾아내서 이용하기 위해 일정한 규칙에 따라 콘텐츠에 대해 부여되는 데이터입니다.
- 교착상태 (Deadlock) → 두 개 이상의 프로세스들이 서로가 가진 자원을 기다리며 중단 된 상태를 뜻합니다. 교착상태의 원인으로는 상호배제, 점유대기, 비선점, 환형 대기 등이 있습니다.
- 프레임워크 (Framework) → 애플리케이션을 개발함에 있어 구조와 틀을 제공하며, 개발에 필요한 기본적인 형태와 필수 요소들을 제공하는 코드의 집합입니다. 또한, 프레임워크에 정해진 규칙과 구조에서 개발을 수행하여야 합니다.
- 라이브러리 (Library) → 어떠한 기능을 수행하는 코드의 집합으로서, 개발자가 필요에 따라서 선택적으로 사용할 수 있습니다.
- SDK (Software Developement Kit) → 특정 시스템이나 플렛폼에서 애플리케이션 개발을 위한 애플리케이션 개발 도구로서 일반적으로 라이브러리, 기술문서, API 등이 포함되어 있습니다.
- 프로세스 (Process) → 컴퓨터에서 실행되고 있는 프로그램을 뜻합니다.
- 스레드 (Thread) → 프로세스 내 작업의 흐름을 뜻합니다.
- 캐시히트 (Cache Hit) → 캐시에서 원하는 데이터를 찾은 경우를 뜻하는 용어입니다.
- 캐시미스 (Cache Miss) → 캐시에서 원하는 데이터를 찾지 못하여 주 메모리로 가서 데이터를 찾아오는 것을 뜻하는 용어입니다.
- 캐시 (Cache) → 데이터 접근을 빠르게 할 수 있도록 미래의 요청에 대비해 데이터를 저장해 두는 임시 장소를 뜻하는 용어입니다.
- 문맥교환 (Context Switch) → 하나의 프로세스가 CPU를 사용하고 있는 상태에서 다른 프로세스가 CPU를 사용할 수 있도록 하기위해서 이전의 프로세스의 상태를 보관하고 새로운 프로세스의 상태를 보관하는 작업을 뜻하는 용어입니다. 즉, 프로세스의 상태를 저장하고 로드시키는 작업입니다.
🚀 REFERENCE
반응형
'#컴퓨터 과학 [Computer Science] > 운영체제 (Operating System)' 카테고리의 다른 글
[OS - 🍎 macOS] macOS 일련 번호 가져오기 (Find macOS serial number) (0) | 2019.10.12 |
---|---|
[OS - 🍎 MacOS] iOS/macOS 주요 웹 브라우저 방문 기록 파일 경로 (Chrome, Safari, Opera, Firefox, Whale, Chromium, Canary History Database Path) (0) | 2019.09.28 |
[OS - 🍎 MacOS] launchd와 launchctl (0) | 2019.09.23 |
[OS - 🍎 MacOS] 데몬(Daemon)과 에이전트(Agent) 정의 및 차의점 (0) | 2019.09.23 |
[OS] 운영체제 (Operating System, 運營體制) (0) | 2019.04.16 |
댓글