운영체제
-
[운영체제] 주소지정방식의 의미 및 종류운영체제 2023. 12. 6. 17:32
주소지정방식이란 프로그램이 수행되는 동안 사용될 데이터의 위치를 지정하는 방법입니다. 주소 지정방식의 중요성효율적인 주소지정방식은 데이터와 명령어에 보다 빠르게 접근할 수 있고, 메모리를 효율적으로 관리하여 하드웨어를 제어하는 데 중요한 역할을 합니다. 절대주소와 상대주소 절대주소(Absolute Address)메모리에서 고유하게 식별되는 위치를 나타내는 실제(유효)주소입니다.기억장치의 맨 처음부터 1 Byte마다 0, 1, 2, 3, ... 의 순서로 16진수의 번호가 차례대로 지정됩니다. 상대주소(Relative Address) 기준주소를 기준으로 하여 상대적으로 이동한 거리(Offset)로 표현하는 주소 ( 절대주소 = 기준주소 + Offset ) 상대주소는 절대주소로 변환해야만 실제 데이터에 접근..
-
[운영체제] 동시성(Concurrency) VS 병렬성(Parallelism)운영체제 2023. 11. 29. 23:17
병렬처리는 컴퓨터 시스템에서 성능향상과 효율성을 위한 핵심 기술 중 하나입니다. 이 병렬처리에 대해 공부하다보면 동시성과 병렬성이라는 개념을 접하게 됩니다. 이 때 병렬(parallel)과 동시(concurrent)의 단어적 의미는 매우 유사하여 컴퓨터 프로그래밍 관점의 동시성과 병렬성을 이해하는 데 매우 혼란스러 울 수 있습니다. 단어적 의미와는 다르게 프로그래밍 관점에서 동시성과 병렬성은 서로 다른 개념이며 다른 목적성을 가집니다. 동시성(Concurrency) 동시성은 프로그램이나 시스템의 의미론적 속성 입니다 . 두 개 이상의 작업이 동시에 진행되는 것, 즉 여러 작업이 실행되는 기간이 겹치는 것을 의미합니다. 여러 작업은 '동시'에 실행되는 것 처럼 보이지만 사실 하나의 CPU는 하나의 작업만 ..
-
[운영체제] 스케줄링 종류와 기아상태운영체제 2023. 11. 22. 12:47
CPU 스케줄링(CPU Scheduling) 다중 프로그래밍의 목적은 CPU 이용률을 최대화하는 것입니다. 이를 위해 프로세스가 작업이 끝나거나 대기 상태로 전환되어 CPU가 유휴 상태가 될 때마다, 운영체제는 스케줄링 기법에 따라 CPU를 회수하여 대기 큐에 있는 다른(우선순위가 높은) 프로세스에 할당합니다. 선점 스케줄링 vs 비선점 스케줄링 스케줄링 기법은 실행중인 작업의 자원을 선점할 수 있는가 여부에 따라 크게 두가지로 나눌 수 있습니다. 선점 스케줄링(Preemptive Scheduling) 현재 실행 중인 작업보다 우선순위가 더 높은 작업이 대기큐에 들어왔을 때 강제로 CPU를 회수하여 높은 우선 순위의 작업을 먼저 실행하도록 하는 방법입니다. 비선점 스케줄링(Nonpreemptive Sch..
-
[운영체제] Scheduler와 Dispatcher운영체제 2023. 11. 16. 18:43
CPU 스케줄러(CPU Scheduler) CPU 스케줄링을 수행하는 프로세스로 모든 컴퓨터 자원을 사용 상태로 유지하고 효과적으로 공유할 수 있도로 작업을 수행합니다. CPU 스케줄링(CPU Scheduling) CPU 이용률을 최대화하기 위해 CPU가 유휴 상태가 될 때마다, 프로세스 우선순위에 따라 CPU를 회수하여 대기 큐에 있는 다른 프로세스에 할당하는 것 스케줄러 종류 장기 스케줄러 (Long-term scheduler or job scheduler) 장기 스케줄러는 Job Queue에서 작업을 선택하고 해당 작업을 해당 컴퓨터의 주 메모리(Ready Queue)에 로드하는 작업을 담당하며 작업 스케줄러라고도 합니다. 단기 스케줄러 (Short-term scheduler or CPU sched..
-
[운영체제] 프로그램, 프로세스, 스레드 비교운영체제 2023. 11. 10. 16:57
프로그램과 프로세스, 스레드 구분하기 프로그램(Program) 컴퓨터에게 주어진 작업을 수행하도록 만들어진 일련의 명령어 집합을 가리킵니다. 이 명령어는 특정 프로그래밍 언어로 작성되며 , 그 언어에 따라 컴퓨터가 이해하고 실행할 수 있는 형태로 변환됩니다. 프로세스(Process) 프로세스란 활성 프로그램, 즉 실행 중인 프로그램입니다. 각 프로세스는 주 메모리에 상주하며, 운영체제에 의해 실행에 필요한 자원들을 할당받아 자신만의 메모리 공간, 실행 상태, 시스템 리소스 등을 가집니다. 또한 프로세스는 여러 프로세스가 서로 영향을 미치지 않고 독립적으로 동시에 실행될 수 있고, 프로세스 간에 데이터를 주고받는 통신이 필요한 경우, 운영체제가 제공하는 통신 메커니즘을 이용하여 데이터를 주고받을 수 있습니..
-
[운영체제] 동기(sync) vs 비동기(async), 블로킹(Blocking) vs 논블로킹(Non-Blocking)운영체제 2023. 11. 8. 22:57
동기 vs 비동기 != 블로킹 vs 논블로킹 동기와 비동기 개념과 블로킹과 논블로킹은 혼용하여 사용하는 경우가 있지만 엄연히 서로 다른 개념입니다. 일반적으로 동기는 블록킹 방식이며 비동기는 논블록킹 방식만 사용한다고 오해하곤 합니다. 그러나 두 개념은 서로 구분하는 관점이 다르기 때문에 동기/ 논블록킹, 비동기/블록킹 방식도 가능합니다. 동기 vs 비동기 : 처리해야 할 작업들을 어떠한 '흐름'으로 처리 할 것인가에 대한 관점 블로킹 vs 논블로킹 : 이벤트가 발생한 경우, 처리되어야 하는 작업이 '제어권'을 넘겨받는 지에 대한 관점 동기 (sync) vs 비동기 (async) 위에서 설명했듯이 동기와 비동기를 구분하는 기준은 작업의 흐름입니다. 동기 방식은 순차적으로 진행되며 작업 A가 완료될 때까지..
-
[운영체제] 입출력(I/O) 제어 - 폴링, 인터럽트, DMA운영체제 2023. 11. 8. 22:57
입출력 작업 시 시스템 자원을 효율적으로 확용하려면? 컴퓨터에서 CPU는 수많은 입.출력 장치와 연결되어 정보를 주고 받는다. 예시에서는 간단하지만 실제 컴퓨터에는 수많은 입출력 장치가 연결되어 있으며, 이로 인해 우리는 간편하게 컴퓨터를 사용할 수 있다. 그러나 입출력 작업은 프로그램 실행 중에 외부 장치와의 데이터 전송을 포함하며, 시간이 오래 걸리거나 예측하기 어려운 경우가 많다. 이 경우 자원의 이용률이 낮아지는 문제가 있는데, 컴퓨터 시스템의 자원을 효율적으로 활용하기 위한 방법들이 있다. 폴링(Polling) CPU를 다른 프로세스에게 넘기지 않고 연결된 디바이스가 동작을 완료할 때까지 상태를 수시로 확인하여 명령을 처리하는 방식을 의미한다. 이 방식은 구현이 간단하다는 장점이 있지만 입축력 ..
-
[운영체제] 시스템 콜 (System Call)운영체제 2023. 11. 6. 16:05
응용 프로그램이 컴퓨터 자원을 사용하는 방법 운영체제는 보안 및 안정성을 위해 사용자 프로그램이나 프로세스가 직접 하드웨어와 상호작용하지 못하도록 유저모드와 커널모드를 구분하여 제공한다. 사용자 프로그램은 유저모드에서 실행되며, 운영체제의 핵심인 커널은 커널모드에서 실행되어 중요한 시스템 자원에 접근할 수 있다. 유저 모드(User Mode) 운영체제의 커널의 보호기능 아래에서 동작한다. 일반 응용 프로그램은 유저모드에서 실행되지만 자원에 접근하는 데 제한이 있다. 유저 모드는 시스템의 안정성을 보장하기 위해 사용자 레벨의 프로세스에 보안과 보호를 제공한다. 커널 모드(Kernel Mode) 운영체제의 핵심 부분이니 커널이 실행되는 모드이다. 커널모드에서는 운영체제의 모든 기능과 자원에 접근할 수 있으며..