⌨️1-4. 운영체계의 용어
운영체계에서 필요한 주요 용어에 대해 알아봅니다.
가상머신(Virtual Machine)
물리적인 컴퓨터와 유사한 환경을 소프트웨어로 구현한 가상의 컴퓨터입니다. 가상머신은 호스트 컴퓨터에서 여러 개의 게스트 운영체제를 실행할 수 있으며, 시스템의 리소스를 효율적으로 사용합니다.
가상 메모리(Virtual Memory)
프로그램이 필요로 하는 메모리보다 큰 용량의 메모리를 프로세스에 제공하는 기술입니다. 가상 메모리는 실제 메모리(RAM)와 디스크의 조합으로 구현되며, 프로세스가 필요로 할 때만 메모리를 할당하여 효율적인 메모리 관리를 가능하게 합니다.
가상 파일 시스템 (Virtual File System)
다양한 파일 시스템을 추상화하여 응용 프로그램에 일관된 파일 시스템 인터페이스를 제공하는 계층입니다. 가상 파일 시스템은 응용 프로그램이 특정 파일 시스템의 세부 사항을 신경쓰지 않고 파일을 액세스할 수 있도록 합니다.
가상화(Virtualization)
하나의 물리적 시스템에서 여러 개의 가상 환경을 생성하여 리소스를 효율적으로 관리하는 기술입니다. 가상화는 하드웨어, 네트워크, 운영체제 등의 가상화가 가능하며, 시스템의 유연성과 가용성을 향상시킵니다.
교착상태(Deadlock)
두 개 이상의 프로세스가 서로가 점유한 자원을 대기하며 진행이 멈춰버리는 상황입니다. 교착상태는 상호배제, 점유대기, 비선점, 순환 대기의 네 가지 조건이 동시에 충족될 때 발생할 수 있습니다.
네임스페이스 (Namespace)
이름 충돌을 방지하기 위해 식별자를 격리하는 기술입니다. 네임스페이스는 각각의 독립된 영역에서 식별자를 사용할 수 있도록 하며, 파일 시스템, 네트워크, 프로세스 등 다양한 영역에 적용될 수 있습니다.
네트워크 토폴로지 (Network Topology)
컴퓨터 네트워크의 물리적인 구성과 연결 방식을 의미합니다. 네트워크 토폴로지에는 버스, 링, 스타, 메시 등 다양한 형태가 있으며, 네트워크의 성능과 확장성에 영향을 미칩니다.
네트워크 프로토콜 (Network Protocol)
컴퓨터 네트워크에서 데이터를 주고받는 규칙과 규약의 집합입니다. 네트워크 프로토콜은 데이터 전송, 에러 검출 및 복구, 인증, 암호화 등을 다룹니다.
데드코드 (Dead Code)
실행되지 않는 코드 블록을 의미합니다. 데드코드는 프로그램의 실행 경로에 포함되지 않으며, 코드의 유지보수와 최적화에 영향을 줄 수 있습니다.
데몬(Deamon)
사용자가 직접 제어하지 않고 백그라운드에서 실행되는 유닉스 및 유닉스 계열 운영 체제의 컴퓨터 프로그램 유형입니다.
동기화(Synchronization)
여러 프로세스 또는 스레드 간에 공유된 자원에 동시에 접근하는 것을 조절하여 충돌을 방지하는 기법입니다. 동기화는 데이터의 일관성과 상호배제를 보장합니다.
동적 연결(Dynamic Linking)
프로그램이 실행될 때 필요한 라이브러리 코드를 실행 파일에 포함시키는 것이 아니라 필요할 때마다 참조하는 방식입니다. 동적 연결은 코드의 재사용성을 높이고, 메모리 사용량을 줄이는 장점이 있습니다.
동적 할당(Dynamic Allocation)
프로그램이 실행 중에 메모리를 필요한 만큼 동적으로 할당하고 해제하는 기법입니다.
디바이스 (Device)
컴퓨터 시스템에서 사용되는 하드웨어나 소프트웨어의 일부분을 의미합니다. 디바이스는 입력장치, 출력장치, 저장장치, 네트워크 인터페이스 등 다양한 형태로 존재하며, 시스템과 상호작용하여 작업을 수행합니다.
디바이스 드라이버(Device Driver)
특정 하드웨어와 상호작용하기 위해 운영체제와 하드웨어 사이에서 중재하는 소프트웨어입니다. 디바이스 드라이버는 하드웨어의 명령을 이해하고 처리하여 운영체제와 응용 프로그램에 필요한 인터페이스를 제공합니다.
디버깅(Debugging)
프로그램의 오류를 찾아 수정하고, 원하는 동작을 확인하는 과정입니다. 디버깅은 소스 코드를 분석하여 오류를 식별하고, 실행 도중의 변수 값, 메모리 상태 등을 검사하여 프로그램의 동작을 분석합니다.
DMA (Direct Memory Access)
디바이스가 메모리에 직접 데이터를 전송하는 기능입니다. DMA는 CPU의 개입 없이 디바이스 간의 데이터 전송을 수행하여 시스템의 부하를 줄이고 전송 속도를 향상시킵니다.
디스크 스케줄링(Disk Scheduling)
디스크의 읽기/쓰기 요청을 처리하는 순서를 결정하는 기법입니다. 디스크 스케줄링은 디스크 헤드의 이동 경로를 최적화하여 디스크 액세스 시간을 최소화하고, 디스크의 성능을 향상시킵니다.
디스크 캐싱(Disk Caching)
디스크에서 데이터를 읽거나 쓸 때, 메모리에 캐시하여 접근 시간을 단축시키는 기법입니다.
RAID (Redundant Array of Independent Disks)
여러 개의 디스크 드라이브를 하나의 논리적인 디스크로 묶어서 데이터의 안정성과 성능을 향상시키는 기술입니다. RAID는 다양한 레벨(Level)로 구성되며, 각 레벨은 데이터의 분산, 복제, 패리티 등의 기능을 제공합니다.
런타임(Runtime)
프로그램이 실행되는 동안의 시간을 의미합니다. 런타임은 프로그램의 실행 환경과 관련된 동적인 요소를 포함하며, 프로그램이 실행되는 동안 발생하는 에러나 예외 처리 등을 다룹니다.
레이어(Layer)
운영체제의 구성 요소를 계층적으로 분리하여 관리하는 방식입니다.
레지스트리(Registry)
윈도우 운영체제에서 시스템 구성 정보와 설정을 저장하는 데이터베이스입니다. 레지스트리는 윈도우 시스템의 동작과 구성을 관리하며, 소프트웨어와 하드웨어의 설정 정보를 저장합니다.
로그 파일 (Log File)
시스템 또는 응용 프로그램의 동작 이벤트와 정보를 기록하는 파일입니다. 로그 파일은 시스템 문제 해결, 오류 추적, 성능 모니터링 등에 사용되며, 이벤트의 시간, 유형, 상세 내용 등을 포함합니다.
링크(Link)
프로그램의 컴파일 및 빌드 과정에서 여러 개의 객체 파일을 연결하여 실행 가능한 이진 파일을 생성하는 과정입니다. 링크는 함수나 변수의 참조를 해결하고, 실행 파일의 메모리 배치를 결정합니다.
마이크로커널(Microkernel)
기본적인 기능만을 커널 내에 구현하고, 나머지 기능은 사용자 공간에서 동작하는 방식입니다.
멀티스레딩(Multithreading)
하나의 프로세스 내에서 여러 스레드를 생성하여 동시에 실행하는 기능입니다. 멀티스레딩은 프로세스 간의 통신과 자원 공유가 간편하며, 응답 시간을 단축시킬 수 있습니다.
멀티유저(Multiuser)
여러 사용자가 동시에 같은 시스템을 사용할 수 있도록 하는 운영 체제의 특성입니다.
멀티태스킹(Multitasking)
영체제가 여러 프로세스를 동시에 실행하고 관리하는 기능입니다. 여러 프로세스가 동시에 실행되는 것처럼 보이지만, 실제로는 CPU 시간을 작은 단위로 나누어 번갈아가며 실행됩니다.
멀티프로세싱(Multiprocessing)
여러 개의 CPU가 동시에 여러 작업을 처리하는 시스템입니다.
메모리 관리(Memory Management)
운영 체제가 시스템의 메모리를 할당하고, 관리하며, 더 이상 사용되지 않는 메모리를 회수하는 역할을 말합니다.
메모리 페이지(Memory Page)
가상 메모리에서 일정한 크기로 분할된 메모리 단위입니다. 메모리 페이지는 주소 공간을 관리하고 가상 메모리와 물리 메모리 간의 매핑을 수행합니다.
모노리틱 커널(Monolithic Kernel)
운영체제의 모든 기능을 하나의 커널 내에 구현하는 방식입니다.
모니터(Monitor)
여러 프로세스나 스레드의 동기화를 조절하기 위한 동기화 객체입니다.
뮤텍스(Mutex)
상호배제(Mutual Exclusion)를 위한 동기화 기법으로, 한 번에 하나의 스레드만이 공유 자원에 접근할 수 있도록 합니다. 뮤텍스는 잠금(locking)과 해제(unlocking)의 두 가지 상태를 가지며, 잠금 상태에서는 다른 스레드의 접근이 차단됩니다.
바이너리(Binary)
컴퓨터에서 사용되는 0과 1로 이루어진 데이터 형식을 의미합니다. 바이너리는 컴퓨터가 직접 이해할 수 있는 형태로 프로그램이나 데이터를 표현합니다.
바이너리 코드 (Binary Code)
컴퓨터가 이해할 수 있는 0과 1로 이루어진 기계어 코드입니다. 바이너리 코드는 소스 코드의 컴파일 과정을 통해 생성되며, 컴퓨터 프로그램의 실행 파일 형식으로 사용됩니다.
바이트(Byte)
정보의 최소 단위로, 8개의 비트로 구성됩니다. 바이트는 컴퓨터에서 데이터를 저장하고 처리하는 기본 단위입니다..
배치 처리(Batch Processing)
여러 작업을 일괄적으로 처리하는 방식으로, 입력 데이터를 미리 모아서 처리합니다. 배치 처리는 자동화된 프로세스로 대량의 작업을 효율적으로 처리하며, 자원과 시간을 절약할 수 있습니다.
백업(Backup)
데이터의 손실을 방지하기 위해 중요한 파일이나 정보를 보존하는 과정입니다. 백업은 주기적으로 수행되며, 데이터 복제, 오프사이트 보관 등의 방법을 사용하여 데이터의 안전성을 유지합니다.
병행성(Concurrency)
프로그램, 알고리즘, 문제의 다른 부분이나 단위가 순서에 상관없이 또는 부분적인 순서로 실행되는 능력입니다.
보안 패치(Security Patch)
소프트웨어의 취약점을 해결하기 위한 업데이트나 수정 프로그램입니다.
부트스트랩(Bootstrap)
컴퓨터가 시작될 때, 운영체제를 메모리에 로드하고 실행하는 과정입니다. 부트스트랩은 컴퓨터의 하드웨어 초기화, 부트로더 실행, 운영체제 로드 등을 포함하며, 운영체제가 실행될 수 있는 초기 상태를 설정합니다.
32비트 (32-bit) / 64비트(64-bit)
컴퓨터에서 한 번에 처리할 수 있는 데이터의 비트 수를 의미합니다. 32비트 시스템은 32비트의 데이터를 한 번에 처리하고, 64비트 시스템은 64비트의 데이터를 한 번에 처리할 수 있습니다. 64비트 시스템은 메모리 관리 및 대용량 데이터 처리에 효과적입니다.
새프로세스 (Zombie Process)
종료된 프로세스가 부모 프로세스의 확인 없이 시스템 리소스를 점유한 상태를 의미합니다. 새프로세스는 부모 프로세스가 해당 프로세스의 상태를 확인하고 메모리를 회수하지 않는 경우에 발생할 수 있습니다.
서브루틴(Subroutine)
프로그램 내에서 재사용 가능한 코드 블록을 의미합니다. 서브루틴은 호출되어 실행되고, 결과를 반환하여 호출한 위치로 돌아갑니다. 서브루틴은 프로그램의 모듈화와 코드의 재사용을 가능하게 합니다.
서비스 팩 (Service Pack)
운영체제나 소프트웨어에 적용되는 업데이트와 보안 패치의 모음입니다. 서비스 팩은 이전 버전의 오류를 수정하고, 기능 추가와 성능 향상을 제공하여 소프트웨어의 안정성과 보안성을 개선합니다.
성능 모니터링 (Performance Monitoring)
시스템 또는 응용 프로그램의 성능을 측정하고 분석하여 최적화하는 과정입니다. 성능 모니터링은 CPU 사용량, 메모리 사용량, 디스크 액세스 속도 등을 측정하고, 성능 문제를 식별하고 해결하기 위해 사용됩니다.
세그멘테이션(Segmentation)
가상 메모리를 서로 다른 크기의 세그먼트로 나누는 메모리 관리 전략.
세마포어(Semaphore)
동시에 접근 가능한 자원의 개수를 제한하여 동기화하는 동기화 기법입니다. 세마포어는 정수 값을 가지며, 접근 가능한 자원의 개수를 나타냅니다. 접근하려는 스레드는 세마포어 값을 확인하고, 접근 가능한 경우 값을 감소시키고 자원에 접근합니다.
세션 (Session)
네트워크 상에서 사용자가 컴퓨터에 접속하고 있는 기간을 의미합니다. 세션은 사용자 인증 정보와 상태 정보를 유지하며, 네트워크 서비스의 연결과 관련된 작업을 처리합니다.
셸(Shell)
컴퓨팅에서 셸은 운영 체제의 서비스에 액세스하기 위한 사용자 인터페이스입니다.
시그널 (Signal)
프로세스나 스레드에게 발생한 이벤트나 예외를 알리는 운영체제의 알림 메커니즘입니다. 시그널은 프로세스 간 통신, 예외 처리, 프로세스 간 협력 등에 사용됩니다.
스레드(Thread)
프로세스 내에서 실행되는 독립적인 실행 단위입니다. 하나의 프로세스는 여러 스레드를 가질 수 있습니다. 스레드는 프로세스의 자원을 공유하면서 동시에 실행될 수 있습니다.
스왑(Swap)
메모리에 더 이상 공간이 없을 때, 일부 데이터를 디스크로 옮기는 작업입니다. 메모리에서 실행 중인 프로세스의 일부나 전체를 디스크로 이동시키는 과정입니다. 스왑은 메모리의 공간을 확보하거나 프로세스를 백그라운드로 이동시키는 등의 목적으로 사용됩니다.
스와핑 혹은 페이징(Swapping or Paging)
메인 메모리에서 하드 디스크의 '스와프' 또는 '페이지 파일'로 데이터를 이동하는 과정(또는 그 반대 과정)으로, 일반적으로 메모리 자원을 확보하는데 사용됩니다.
스케줄링(Scheduling)
운영 체제가 CPU를 어떤 프로세스 혹은 스레드에 할당할지 결정하는 방법을 말합니다.
스케줄링 알고리즘(Scheduling Algorithm)
프로세스나 작업의 실행 순서를 결정하는 알고리즘입니다. 스케줄링 알고리즘은 프로세스의 우선순위, 대기 시간, 작업량 등을 고려하여 CPU 시간을 효율적으로 할당하고, 시스템 성능을 최적화합니다.
스핀락(Spinlock):
멀티스레드 환경에서 공유 자원에 대한 동시 접근을 제어하는 동기화 메커니즘. 뮤텍스와 비슷한 동기화 기법으로, 한 스레드가 공유 자원에 접근할 때까지 반복하여 검사하는 방식입니다. 스핀락은 점유 시간이 짧은 경우에 효율적이며, 대기 시간이 길 경우에는 다른 동기화 기법을 사용하는 것이 좋습니다.
시동 로더 (Boot Loader)
컴퓨터 부팅 시 운영체제를 로드하고 실행하기 위한 프로그램입니다.
시분할 시스템(Time-sharing System)
CPU 시간을 작은 단위로 나누어 여러 사용자가 동시에 사용할 수 있는 시스템입니다. 시분할 시스템은 각 프로세스에 일정한 시간 슬롯을 할당하여 다중 사용자 환경을 지원하며, 사용자 간에 공정한 CPU 사용을 보장합니다.
시스템 리소스(System Resources)
컴퓨터의 메모리, CPU, 디스크 공간 등과 같은 하드웨어 자원을 의미합니다. 시스템 리소스는 운영체제에 의해 관리되며, 프로세스나 스레드에게 할당되어 작업을 수행하는 데 사용됩니다.
시스템 콜(System Call)
프로그램이 운영 체제의 서비스를 요청할 때 사용하는 인터페이스입니다.
실시간 운영 체제(Real-Time Operating System, RTOS)
실시간 시스템에서 요구하는 정확한 시간 요구 사항을 충족시키기 위해 설계된 운영 체제입니다.
쓰레기 수집 (Garbage Collection)
프로그래밍 언어에서 동적으로 할당된 메모리 중 사용되지 않는 메모리를 자동으로 회수하는 기능입니다. 쓰레기 수집은 메모리 누수와 관련된 문제를 방지하고, 프로그래머가 명시적으로 메모리 관리를 신경 쓰지 않아도 되는 장점이 있습니다.
CLI (Command Line Interface)
텍스트 명령어를 사용하여 컴퓨터와 상호작용하는 인터페이스입니다.
아키텍처(Architecture)
컴퓨터 시스템의 구조와 동작 방식을 설계하는 원칙과 규칙의 집합입니다. 아키텍처는 하드웨어와 소프트웨어 간의 인터페이스, 시스템 구성 요소, 데이터 흐름 등을 정의합니다.
API(Application Programming Interface)
소프트웨어 구성 요소 간 상호작용을 위한 규칙과 도구를 제공하는 인터페이스입니다. API는 응용 프로그램이 운영체제, 라이브러리, 프레임워크 등과 상호작용할 수 있도록 인터페이스를 정의합니다.
예외 처리(Exception Handling)
프로그램 실행 중에 예기치 않은 상황에 대한 처리 방법을 정의하고 구현하는 과정입니다.
오버로드(Overload)
하나의 이름에 여러 가지 기능을 할당하는 것을 의미합니다. 오버로드는 함수나 연산자가 다른 인수 또는 피연산자를 가질 수 있도록 하여 프로그래머의 편의성과 가독성을 높입니다.
오버헤드(Overhead)
시스템이나 프로세스가 추가적으로 발생하는 부하를 의미합니다. 오버헤드는 시스템 리소스의 사용, 처리 시간의 지연 등을 포함하며, 성능 저하의 원인이 될 수 있습니다.
오픈 소스(Open Source)
소스 코드가 공개되어 누구나 자유롭게 수정하고 배포할 수 있는 소프트웨어입니다.
운영 체제(Operating System, OS)
컴퓨터 하드웨어와 소프트웨어 간의 인터페이스를 제공하는 시스템 소프트웨어입니다. 시스템 자원을 관리하고, 사용자와 하드웨어 간의 상호작용을 원활하게 만들어줍니다.
인메모리 컴퓨팅 (In-Memory Computing)
메인 메모리를 주요한 데이터 저장 공간으로 사용하여 데이터 처리를 수행하는 컴퓨팅 방식입니다. 인메모리 컴퓨팅은 데이터 액세스 시간을 단축시켜 처리 속도를 향상시키고, 대용량 데이터 처리에 효율적입니다.
인터럽트(Interrupt)
하드웨어나 소프트웨어에서 발생하는 예외 상황을 운영체제에 알리는 신호입니다. 인터럽트는 우선순위가 높은 작업에 대해 운영체제가 빠르게 응답할 수 있도록 도와주며, 입출력 장치와의 상호작용을 가능하게 합니다.
인터프리터(Interpreter)
프로그램의 각 줄을 읽고 실행하는 소프트웨어로, 컴파일 과정을 거치지 않고 코드를 실행합니다. 인터프리터는 소스 코드를 한 줄씩 읽어들여 해당 명령을 실행하므로, 컴파일 단계를 거치지 않고 즉시 실행할 수 있습니다.
임계 영역 (Critical Section)
여러 프로세스 또는 스레드가 동시에 접근해서는 안 되는 공유 자원을 포함한 코드 영역입니다.
입출력 장치(I/O Devices)
컴퓨터의 하드웨어 장치들(키보드, 마우스, 디스플레이, 프린터 등)을 말하며, 이들 장치들은 운영 체제에 의해 관리됩니다.
윈도우(Window)
그래픽 사용자 인터페이스에서 작업 영역을 구분하기 위해 사용되는 사각형 영역입니다.
자원 스케줄링(Resource Scheduling)
CPU, 메모리, 디스크 등의 시스템 리소스를 효율적으로 할당하는 기법입니다.
장치 드라이버(Device Driver)
특정 하드웨어 장치를 운영 체제가 이해할 수 있는 방식으로 제어하기 위한 소프트웨어입니다.
GUI(Graphical User Interface)
그래픽을 사용하여 사용자와 컴퓨터 간 상호작용을 제공하는 인터페이스입니다. GUI는 윈도우, 버튼, 메뉴 등의 그래픽 요소를 사용하여 사용자가 프로그램을 쉽게 조작할 수 있도록 합니다.
초기화 (Initialization)
시스템이나 프로그램을 사용하기 전에 초기 상태로 설정하는 과정입니다.
캐시 (Cache)
메모리 계층 구조에서 CPU가 자주 참조하는 데이터를 미리 저장하여 접근 시간을 단축시키는 임시 저장 공간입니다. 캐시는 속도가 빠른 메모리와 속도가 느린 메모리 사이에 위치하며, CPU가 데이터를 요청할 때 캐시에서 먼저 찾아보고, 캐시에 없는 경우에만 메인 메모리에서 데이터를 가져옵니다.
커널(Kernel)
운영 체제의 핵심 부분으로, 시스템의 다양한 하드웨어와 상호 작용하며, 자원 관리를 담당합니다.
커널 패닉(Kernel Panic)
운영체제의 커널이 치명적인 오류를 감지하고 시스템을 정지시키는 상황입니다.
컨테이너(Container)
응용 프로그램과 그 실행 환경을 격리하여 독립적으로 실행하는 기술입니다. 컨테이너는 가볍고 효율적인 가상화 방식으로, 소프트웨어 개발, 배포, 운영을 단순화하고 확장성을 제공합니다.
컨텍스트 스위치(Context Switch)
CPU가 하나의 프로세스에서 다른 프로세스로 전환하는 과정.
컨텍스트 스위칭 (Context Switching)
실행 중인 프로세스나 스레드의 상태를 저장하고 다음에 실행될 프로세스나 스레드의 상태를 복원하는 과정입니다. 컨텍스트 스위칭은 CPU의 상태, 레지스터 값, 프로세스의 메모리 매핑 등을 전환하며, 멀티태스킹을 가능하게 합니다.
컴파일러(Compiler)
프로그래밍 언어로 작성된 소스 코드를 기계어로 변환하는 소프트웨어입니다. 컴파일러는 소스 코드를 분석하고, 중간 코드 또는 목적 코드로 변환하여 실행 가능한 프로그램을 생성합니다.
컴퓨터 클러스터(Computer Cluster)
여러 대의 컴퓨터를 연결하여 공동 작업을 수행하는 시스템입니다.
코드 최적화 (Code Optimization)
프로그램의 실행 속도나 메모리 사용량 등을 개선하기 위해 코드를 재구성하고 최적화하는 과정입니다. 코드 최적화는 프로그램의 성능을 향상시키고 자원을 효율적으로 사용할 수 있도록 합니다.
클라이언트-서버 모델 (Client-Server Model)
네트워크를 통해 클라이언트와 서버가 상호작용하여 서비스를 제공하는 모델입니다. 클라이언트는 서버에 요청을 보내고, 서버는 요청에 대한 응답을 제공하여 클라이언트와의 상호작용을 가능하게 합니다.
클러스터(Cluster)
파일 시스템에서 파일을 저장하는 최소 단위로, 여러 개의 섹터로 구성됩니다. 클러스터는 파일 시스템의 공간 효율성을 높이고 파일의 논리적 구성을 관리하는 데 사용됩니다.
클러스터링(Clustering)
여러 대의 컴퓨터를 하나의 시스템으로 묶어서 공동 작업을 수행하는 기술입니다. 클러스터링은 고가용성, 장애 허용, 성능 향상 등을 위해 여러 컴퓨터를 결합하여 작업을 분산하고, 상호 백업 및 복제를 제공합니다.
파일 디스크립터 (File Descriptor)
프로그램이 파일을 식별하고 접근하기 위해 사용하는 추상화된 개념입니다. 파일 디스크립터는 정수 값으로 표현되며, 파일의 열림 상태, 읽기/쓰기 위치 등의 정보를 포함합니다.
파일 시스템(File System)
데이터를 파일로 저장하고, 조직화하는 방법입니다. 운영 체제는 파일 시스템을 관리하고, 파일 생성, 읽기, 쓰기, 삭제 작업을 제어합니다. 파일 시스템은 파일과 디렉터리의 생성, 수정, 삭제 등을 관리하며, 파일에 대한 접근과 보관을 제공합니다.
파일 암호화 (File Encryption)
파일의 내용을 암호화하여 외부에서 접근할 수 없도록 보호하는 기술입니다. 파일 암호화는 암호 키를 사용하여 원본 파일을 암호화하고, 암호 키를 사용하여 암호화된 파일을 해독하는 과정을 포함합니다.
파일 압축 (File Compression)
파일의 크기를 줄이기 위해 데이터를 압축하는 기술입니다. 파일 압축은 데이터를 더 작은 공간에 저장하고 전송 시간을 단축시키는 장점이 있으며, 압축 및 압축 해제 과정을 거칩니다.
파일 액세스 권한(File Access Permissions)
파일에 대한 읽기, 쓰기, 실행 등의 권한을 설정하여 접근을 제어하는 기능입니다. 파일 액세스 권한은 파일 소유자, 그룹, 기타 사용자에 대해 각각 설정될 수 있으며, 보안과 데이터의 무결성을 유지합니다.
파티션(Partition)
하나의 물리적 디스크를 여러 개의 논리적인 구획으로 나눈 영역입니다. 파티션은 각각 독립적으로 포맷되고 파일 시스템을 사용하여 데이터를 저장할 수 있는 공간을 제공합니다.
페이지 교체(Page Replacement)
가상 메모리에서 페이지 부재(Page Fault)가 발생한 경우, 디스크의 페이지를 새로운 페이지로 교체하는 기법입니다. 페이지 교체 알고리즘은 페이지 교체 정책에 따라 결정되며, 일반적으로 페이지 부재율을 최소화하기 위해 최적의 페이지를 교체합니다.
페이지 테이블(Page Table)
가상 메모리와 물리 메모리 간의 페이지 매핑 정보를 유지하는 테이블입니다. 페이지 테이블은 가상 주소를 물리 주소로 변환하여 메모리 액세스를 관리하고, 페이지 부재(Page Fault) 등의 예외 처리에 사용됩니다.
페이지 폴트(Page Fault)
프로그램이 현재 메모리에 없는 페이지에 액세스하려 할 때 발생하는 인터럽트.
페이징(Paging)
가상 메모리를 물리적 메모리로 매핑하는 메모리 관리 전략.
포멧(Format)
디스크 또는 파티션에 파일 시스템을 생성하는 과정입니다. 포멧은 디스크에 파일 시스템을 초기화하고, 파일 시스템의 구조와 메타데이터를 설정합니다.
프로그래밍 인터페이스(Programming Interface)
프로그래밍 언어로 제공되는 함수, 클래스, 메서드 등을 의미합니다.
프로세스(Process)
실행 중인 프로그램의 인스턴스를 말합니다. 프로세스는 운영체제로부터 할당받은 자원(메모리, CPU 시간 등)을 사용하여 작업을 수행하며, 프로세스를 관리하고 스케줄링합니다.
프로세스 간 통신,IPC(Inter-Process Communication)
다른 프로세스간에 데이터를 주고받는 메커니즘입니다. IPC는 프로세스 간 데이터 공유, 동기화, 협력 작업 등을 가능하게 하며, 메모리, 파일, 파이프, 소켓 등의 통신 매체를 사용합니다.
프로세스 상태(Process State)
프로세스가 시스템에서 현재 어떤 상태인지 (예: 실행 중, 대기 중)를 나타냅니다.
프로세스 스케줄링(Process Scheduling)
여러 프로세스가 CPU 시간을 공유할 때, 우선순위, 시간 할당량 등의 기준에 따라 프로세스 실행 순서를 결정하는 기법입니다. 스케줄러는 프로세스의 실행 순서를 관리하여 시스템 성능을 최적화합니다.
프로세스 제어 블록(PCB, Process Control Block)
운영 체제가 각 프로세스에 대한 중요한 정보를 추적하는 데 사용하는 데이터 구조.
프로파일링(Profiling)
프로그램의 성능과 자원 사용량을 분석하여 최적화하는 과정입니다.
프리엠프티브 스케줄링 (Preemptive Scheduling)
운영체제가 실행 중인 프로세스를 강제로 중단하고 다른 프로세스에게 CPU를 할당하는 스케줄링 방식입니다. 프리엠프티브 스케줄링은 우선순위 기반 스케줄링 등 다양한 스케줄링 알고리즘과 함께 사용됩니다.
Last updated