Computer Engineering
-
프로세스 동기화(Process Synchronization)Computer Engineering/운영체제 2019. 8. 16. 05:07
안녕하세요 dely입니다:) 오늘은 프로세스 동기화(Process Synchronization)에 대해 정리해보겠습니다. 구글 스프레드시트를 공유문서로 두고 동시에 여러명이서 편집하다보면 내가 쓴 글자가 어느샌가 사라져버린 것을 발견하기도 합니다 주황색의 두루미(누구냐 넌...)가 편집해버렸기 때문입니다..... 이처럼 운영체제 내에서도 동시에 여러개의 스레드가 동일한 자료를 접근하여 조작하고, 그 실행 결과가 접근이 발생한 특정 순서에 의존하는 상황이 발생하게 됩니다. 이를 경쟁 상황(race condition)이라고 합니다. 경쟁 상황으로부터 보호하기 위해서는 한 순간에 하나의 스레드만이 변수 count를 조작하도록 보장해야합니다. > 공유 자원에 대한 접근을 제어하는 방법 1. 임계 구역(Criti..
-
CPU 스케쥴링(CPU Scheduling)Computer Engineering/운영체제 2019. 8. 8. 20:06
안녕하세요 dely입니다:) 오늘은 CPU 스케쥴링에 대해 정리해보겠습니다. CPU 스케쥴링은 다중 프로그램 운영체제에서 CPU를 어떻게 하면 더 효율적으로 사용할 수 있을지에 대한 고민에 의해 생겨난 개념입니다. 즉, 같은 시간 내에 많은 양의 작업을 처리하기 위해 적합한 프로세스에게 CPU를 할당하기 위한 방법론이라고 할 수 있습니다. 프로세스 실행은 다음과 같이 CPU 실행과 입출력 대기의 사이클로 구성됩니다. CPU burst -> 입출력 burst -> CPU burst -> ... -> CPU burst -> 시스템 콜(실행 종료) 그런데 이때 CPU burst와 입출력 burst의 길이 차이가 생길 수 있습니다. 입출력 중심의 프로그램일 경우 CPU burst는 상대적으로 짧을 것이고, CP..
-
스레드(Threads)Computer Engineering/운영체제 2019. 7. 19. 00:47
안녕하세요 dely입니다:) 오늘은 저번 프로세스 글에서 문맥교환을 피하기 위한 방법으로 언급된 스레드에 대해 정리해보겠습니다. - 스레드(Threads)란? 스레드(Threads)는 경량 프로세스라고도 불리고, CPU 이용의 기본 단위입니다. 현대의 프로세스는 다수의 제어 스레드를 가지고 있기 때문에 여러가지 작업을 할 수 있게 됩니다.(다중 스레드) 스레드는 ID, 프로그램 카운터, 레지스터 집합, 스택으로 구성되어 있습니다. 그리고 코드, 데이터, 파일, 신호와 같은 운영체제 자원들을 같은 프로세스에 속한 다른 스레드들과 공유하게 됩니다. - 다중 스레드를 이용한 프로그래밍의 장점 다중 스레드를 이용한 프로그래밍은 다음과 같은 장점이 있습니다. 응답성(프로그램에서 큰 작업을 수행할 때 다른 스레드를..
-
프로세스(Process)Computer Engineering/운영체제 2019. 7. 13. 17:12
안녕하세요 dely입니다:) 오늘은 운영체제 프로세스에 대해 정리해보려고 합니다. 프로세스는 현재 컴퓨터에서 실행하고 있는 프로그램이라고 간단히 표현할 수 있습니다. 과거 한 대의 컴퓨터가 하나의 작업만 할 수 있던 때에는 필요없었지만 현대의 한 대의 컴퓨터에서 여러 작업을 수행하는 시분할 시스템에서 필요한 개념이라고 합니다. 왜냐하면 컴퓨터가 일을 하는 데에는 메모리, CPU 같은 여러 자원들이 필요한데, 한 대의 컴퓨터에서 여러 작업(task)들이 이 자원들을 서로 자기가 먼저 쓰겠다고 하는 상황이 일어나기 때문입니다. - 프로세스?? 프로세스에는 사실 우리가 흔히 생각하는 수동적인 프로그램이라기보단 다음에 실행할 명령어를 지정하는 프로그램 카운터(PC)와 연관된 자원의 집합을 가진 능동적인 존재(?..