본문 바로가기

전체 글

운영체제란?? - Parallel System Parallel System, 병렬 시스템 하나 이상의 CPU간의 연결을 통하여 멀티 프로세서 시스템이다. 이러한 Parallel System을 Distribute System과 비교하여 Tightly Coupled System이라고 하는데 이는 각각의 프로세서들이 자원과 Clock을 공유하기 때문이다. 각각의 프로세서들간의 연결은 공유메모리를 통해서 이루어진다. 이러한 Parallel System의 이점으로는 1. 효율(Throughtput) 증가(처리량 증가) 2. 경제성이 높음 3.신뢰성(Reliability) 향상(하나의 CPU가 고장시 다른 CPU가 대신) 이러한 Parallel System은 크게 두가지로 나 눌수 있는 이는 아래와 같다. 1. Symmetric Multiprocessing(S.. 더보기
운영체제란?? - Time-Sharing System Time-Sharing System, 시분할 시스템이란 짧은 시간 각격으로 CPU를 각 프로세스에 할당하여 마치 여러 프로세스들이 동시에 CPU를 할당 받아 동작하는 것처럼 만드는 것을 말한다. 시분할 시스템의 경우 다중 사용자, 대화식 작업환경에 적합하다. 시분할 시스템은 여러개의 프로세스들을 동작시키는데 다중 프로세스를 동작시키는데 주기억장치는 한계가 있다. 그렇기 때문에 Viirtual Memory, 가상 메모리를 사용하는데 이는 후에 얘기하도록 하겠다. 더보기
운영체제란?? - Batch System Batch System란 초장기 켬퓨터의 유형이다. 그럼 Batch란 무엇인가?? Batch의 사전적인 정의를 살펴보면 아래와 같다, batch [bætʃ] n. ① 한 벌; 한 묶음; 한 떼, 일단(一團); 〖컴퓨터〗 묶음, 배치. ② (빵·도기 따위의) 한 가마, 한 번 구워낸 것. Batch가 위와 같다면 Batch System은 무엇인가?? Batch System이란 한 번의 하나의 작업만을 처리할 수 있는 시스템이다. 예를 들어 초장기 컴퓨터의 경우 펀치가드를 통해 컴퓨터를 이용하였는데 이러한 컴퓨터를 통해서 한번의 하나씩 프로그램을 실행할 수 있었다. 하지만 위와 같은 batch시스템의 경우 문제점이 있다. 바로 CPU의 속도와 I/O Device의 속도 차이다. 지금도 마찬가지지만 I/O의 .. 더보기
운영체제란?? - 정의와 목적 운영체제(Operation System, O.S)란 무엇인가?? 간단히 정의를 내리자면 아래와 같다. "컴퓨터 사용자와 컴퓨터H/W간의 중개자 역할을 하는 프로그램" 그렇다면 O.S가 필요한 이유는 무엇인가?? O.S의 목적은 크게 두 가지로 나 눌수 있다. 1. 컴퓨터 시스템을 편리하게 이용 2. 컴퓨터 자원을 효율적으로 관리 하지만 대다수의 사람들이 사용하는 PC의 경우에는 자원을 효율적으로 관리하기 보다는 유저가 좀더 편리하게 컴퓨터 시스템을 사용하는 것을 주 목적으로 사용하고 메인프레임이나 슈퍼 컴퓨터의 경우는 자원을 효율적으로 관리 하는것에 중점을 둔다. 위의 그림은 컴퓨터 시스템의 4가지 요소(Hardware, O.S, Application, User)의 대략적인 관계이다. 위의 그림중 Ker.. 더보기
DeadLock - DeadLock Prevention DeadLock Prevention은 DeadLock을 전혀 일으키지 않도록 함으로써 DeadLock을 방지하는 방법이다. 그 방법은 DeadLock의 필요조건 4가지 중에서 한 가지라도 없앰으로써 원천봉쇄하는 것이다. DeadLock의 필요조건 4가지는 아래의 글을 읽어보길 바란다. http://blog.naver.com/darknata/70085988586 이 4가지 조건을 없애는 데에는 다양한 방법들이 존재하고 있다. 그런 방법들을 일일이 나열 할 수는 없기 때문에 가장 대표적인 방법 한가지 씩을 나열하겠다. - Mutual Exclusion : 이 조건은 자원의 속성에 따른 조건이기에 일반적인 해결방법은 없다. - Hold and Wait : 이 조건은 프로세스가 실행되기 전애 자신이 일을 마치기.. 더보기
DeadLock - Methods of Handling DeadLock에 관한 접근 방법에는 여러가지 관점이 있고 그 관점에 따라 여러가지 방법이 있을 수 있다. 일단 DeadLock에 관한 접근 방법에는 DeadLock상태에 절대로 빠지지 않게 함으로써 접근하는 방법 DeadLock이 발생하도록 내버려 주고 이를 찾아 회복함으로써 접근하는 방법 마지막으로 무시하는 방법 이 3가지가 있다. 첫번째 접근 방법에서는 DeadLock Prevention, DeadLock Avoidance 두번째 접근 방법에서는 DeadLock Detection/Recovery 가 있다. 하지만 실제로 많은 운영체제들이 세번째 방법인 DeadLock을 무시하고 있기 때문에 개발자는 DeadLock에 대해 잘 알고 그에 따라 프로그램을 개발해야만 한다, 더보기
DeadLock - Resource Allocation Graph 자원 할당 그래프(Resource Allocation Graph, 이하 RAG)는 각 자원들이 사용 가능한지, 할당되어 있는지, 또 어느 프로세스에게 할당되어 있는지 시각적으로 표현한 방향 그래프이다. 이러한 그래프를 통해서 현재 상황이 DeadLock상태인지 아닌지, 또 DeadLock상태라면 어디서 DeadLock상태가 발생되었는지 한 눈에 알아 볼수 있다. RAG를 그리려면 모든 노드들의 집합인 V와 연결 상태를 나타내는 집합 E가 필요하다. 여기서 V의 경우에는 프로세스들의 집합인 P와 리소스의 집합인 R로 나누어 진다. 즉 V = P U R P = { P1, P2, ... ,Pn } R = { R1, R2, ... ,Rm } E = { Pi -> Rj or Rj -> Pi } ( Pi -> Rj.. 더보기
DeadLock - DeadLock이란? DeadLock이란 프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태를 말한다. 예를 들어가 P1과 P2가 리소스 A,B 둘 다를 얻어야 한다고 가정하자. t1에 P1이 리소를 A를 얻고 P2가 리소스 B를 얻었다면 t2때 P1은 리소스 B를, P2는 리소스 A를 기다리게 된다. 하지만 서로 원하는 리소스가 상대방에게 할당되어 있기 때문에 이 두 프로세스는 무한정 기다리게 되는데 이러한 상태을 DeadLock상태라고 한다. DeadLock의 필요조건은 아래의 4가지가 있다. -Mutural Exclusion : 한 리소스는 두 개의 프로세스에게 동시에 할당될 수 없다. -Hold and Wait : 한 프로세스가 리소스를 가지고 있고 필요한 또다른 리소스는 다른 프로세스가 가지고 있다. -No .. 더보기