전공공부/운영체제
-
5. 세마포어, 뮤텍스전공공부/운영체제 2019. 12. 24. 19:00
세마포어와 뮤텍스의 차이점 세마포어 (Semaphore) Signaling mechanism. 일종의 카운터로서 Critical Section에 프로세스(스레드)가 동시에 N개 접근할 수 있다. 카운터 값이 0과 1로만 제한되면 Binary semaphore이며, 그 이상의 값을 가지면 Counting semaphore이다. 뮤텍스 (Mutex) Locking mechanism. 락(Lock)을 가진 하나의 프로세스(스레드)만 크리티컬 섹션에 접근할 수 있다. Binary semaphore로 구현될 수 있다. 뮤텍스 (Mutex) 세마포 (Semaphores) 공유된 자원의 데이터를 여러 스레드가 접근하는 것을 막는것 공유하는 자원의 데이터를 여러 프로세스가 접근하는 것을 막는것 뮤텍스는 lock,unl..
-
4. 프로세스 동기화전공공부/운영체제 2019. 12. 24. 18:41
동기 vs 비동기 동기와 비동기를 구분하는 기준은 작업 순서이다. 동기식 모델은 모든 작업들이 순서를 따르며 그 순서에 맞게 동작한다. 즉 A,B,C순서대로 작업이 시작되었다면 A,B,C순서로 작업이 끝나야 한다. 설령 여러 작업이 동시에 처리되고 있다고 해도, 작업이 처리되는 모델의 순서가 보장되면 이는 동기식 처리 모델이라고 할 수 있다. 반면 비동기식 모델은 작업의 순서가 보장되지 않는다. A,B,C순서로 작업이 시작되어도 A,B,C 순서로 작업이 끝난다고 보장할 수 없다. 비동기식 처리 모델이 이득을 보는 경우는 각 작업이 분리될 수 있으며, Latency(내부지연시간)가 큰 경우이다. 예를들어 각 클라이언트 또는 작업별로 Latency가 발생하는 네트워크 처리나 파일 입출력등이 훌륭한 적용 예시..
-
3. CPU 스케줄링전공공부/운영체제 2019. 12. 19. 19:26
앞서 운영 체제의 기능을 배우면서 CPU와 메모리 보조기억장치 와의 관계를 보았으며 이들 사이에 시스템 호출, 메모리 할당등을 하면서 CPU 스케줄링 관리, 메모리 관리, 파일 및 입출력 관리가 필요하다는 것을 알게 됐다. 그렇다면 CPU 스케줄링이 무엇일까? CPU 스케줄링 메모리에 있는 준비(Ready)상태의 프로세스 중 하나를 선택 해 CPU의 자원을 할당하는 방법이다. CPU 스케줄링이 일어나는 시점 CPU자원을 가지고 있다가 뺴앗길 수 있는 상황은 다음과 같다. 1. 실행(Running)상태에서 대기(Waiting)상태로 전환될 때 (예, 입출력 요청) - 비선점 2. 실행(Running)상태에서 준비(Ready)상태로 전환될 때 (예, 인터럽트가 발생할 때) - 선점 3. 대기(Waiting)..
-
2. 프로세스와 스레드 (Process vs Tread)전공공부/운영체제 2019. 12. 18. 09:57
프로그램(Program)이란 "어떤 작업을 위해 실행할 수 있는 파일"로써 생명력이 없으며 보조기억장치에 존재하며 실행되기를 기다리는 명령어와 정적인 데이터의 묶음이다. 프로세스(Process)란 의미 "메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체)"로써 하드디스크에 저장 돼 있는 코드뭉치, 정적인 데이터가 메모리에 할당되어 생명력이 있는 프로세스가 된다. 즉 운영체제로부터 시스템 자원을 할당받는 작업의 단위이며 실행된 프로그램을 의미한다. 스택: 복귀주소와 로컬 변수와 같은 임시적인 자료를 가진다. 데이터: 전역변수 수록 힙: 실행전에 동적으로 할당되는 메모리영역 함수 호출 시 스택/ 동적할당 시 힙을 사용한다. 참고 할당받는 시스템 자원의 예 CPU 시간/ 운영되기 위해 필요한 주..
-
1. 운영체제와 커널이란?전공공부/운영체제 2019. 12. 17. 19:59
운영체제란? 운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임입니다. 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공해 줍니다. 커널이란? 컴퓨터와 전원을 켜면 운영체제는 이와 동시에 수행된다. 한편 소프트웨어가 컴퓨터 시스템에서 수행되기 위해서는 메모리에 그 프로그램이 올라가 있어야 한다. 마찬가지로 운영체제 자체도 소프트웨어로서 전원이 켜짐과 동시에 메모리에 올라가야 한다. 하지만, 운영체제처럼 규모가 큰 프로그램이 모두 메모리에 올라간다면 한정된 메모리 공간의 낭비가 심할것이다. 따라서..