본문 바로가기

반응형
SMALL

운영체제

인터럽트 https://ggodong.tistory.com/256 운영체제의 자원 관리 기능을 간단히 알아보자. 운영체제는 하드웨어 자체를 관리하는 일과 실제 수행시킬 프로그램을 관리시켜주는 친구로서 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어입니다. 그렇다면 운영체제의 자원 관리 기능 ggodong.tistory.com 해당 글을 미리 읽고 오면 좋아요.😘 CPU는 굉장히 수동적인 친구입니다. 왜냐면 시키는 대로만 일하는 친구거든요. 입출력 장치에 입력이 들어왔다고 칩시다. 그 데이터들을 잠시 놔두는 곳이 로컬 버퍼(local buffer)라고 하는 친구입니다. 그런데, CPU가 이 입출력 데이터가 로컬 버퍼에 다 모였는지, 매번 확인하는 게 아니고, 다 모이면 버퍼와 CPU 사이에 있는 컨트롤러가 인터럽트.. 더보기
운영체제의 자원 관리 기능을 간단히 알아보자. 운영체제는 하드웨어 자체를 관리하는 일과 실제 수행시킬 프로그램을 관리시켜주는 친구로서 컴퓨터 하드웨어 바로 윗단에 설치되는 소프트웨어입니다. 그렇다면 운영체제의 자원 관리 기능을 살펴보도록 합시다. 운영체제의 가장 핵심적인 기능은 자원을 효율적으로 관리하는 것입니다. HW / SW 자원으로 나뉩니다. 그 중 HW 자원은 CPU / 메모리 / 주변장치 또는 입출력 장치로 구성됩니다. 하나씩 살펴볼까요? CPU CPU의 경우 통상적으로 컴퓨터 한 대에 하나가 장착되기 때문에 여러 프로세스가 CPU를 효율적으로 나누어 사용해야합니다. 그러니 매 시점 어떠한 프로세스에 CPU를 할당해 작업을 처리할 것인지 결정하는 일이 필요합니다. 이러한 일을 CPU 스케줄링이라 합니다. 대표적으로 선입선출, 라운드 로빈, .. 더보기
데드락 (Deadlock) 교착상태라고도 불리는 데드락을 알아보도록 하겠습니다. 데드락은 어느 프로세스도 일을 할 수 없는 상태를 말합니다. Process 상태 Blocked/Asleep state : 프로세스가 특정 이벤트를 기다리는 상태 Deadlock 상태 프로세스가 발생 가능성이 없는 이벤트를 기다리는 경우입니다. 그렇다면 여기서 궁금한게 생깁니다. 기아 상태도 이벤트를 기다리는 경우인데 Deadlock과 무슨 차이가 있을까요? Deadlock과 Starvation의 차이 Deadlock은 asleep 상태에서 자원이나 이벤트를 기다리는데 일어날 가능성이 없는 것을 기다리는 경우입니다. Starvation은 ready 상태에서 CPU를 기다리는데 발생할 수 있는데, 계속해서 새치기를 당하는 경우입니다. Deadlock은 자.. 더보기
프로세스 동기화 (Process Synchronization and Mutual Exclusive) 이 글은 앞서 포스팅한 공룡책 6장 프로세스 동기화에서 이해되지 못한 부분을 정리하기 위해서 작성한 글입니다. 다르거나 이상한 점이 있다면 댓글로 알려주시면 감사하겠습니다. Process Synchronization (동기화) 다중 프로그래밍 시스템 여러 개의 프로세스들이 존재합니다. 프로세스들은 서로 독립적으로 동작합니다. 즉, 동시에 동작합니다. 만약 공유 자원을 동시에 접근하려고 하면 문제가 생길 수 있습니다. 예를들어 한 종이에 두 명의 사람이 그림을 그리려고 하는데, 한 종이에 두 사람이 동시에 그림을 그리면 그림은 엉망이 됩니다. 그래서 그림을 그리기 위해 대화를 해야하는데, 이 대화하는 행위가 동기화입니다. 공유 자원 또는 데이터가 있을 때, 문제 발생 가능합니다. 동기화 (Synchroni.. 더보기
공룡책 6장 프로세스 동기화 이 글은 공룡책으로 유명한 운영체제 9판을 가지고 작성한 글입니다. 다르거나 이상한 점이 있다면 댓글로 알려주시면 감사하겠습니다. 협력적 프로세스는 시스템 내에서 실행 중인 다른 프로세스의 실행에 영향을 주거나 영향을 받는 프로세스입니다. 협력적 프로세스는 논리 주소 공간(코드와 데이터)을 직접 공유하거나, 단지 파일 또는 메시지에 의해서 데이터의 공유가 허용됩니다. 전자의 경우 4장에서 논의한 스레드를 사용해 달성할 수 있습니다. 공유 데이터에 대한 동시 접근은 데이터의 비일관성을 낳을 수 있습니다. 이 장에서는, 논리 주소 공간을 공유하는 협력적 프로세스의 질서 있는 실행을 보장하여, 이를 통해 데이터의 일관성을 유지하는 다양한 메커니즘을 논의합니다. 배경 저흰 이미 프로세스가 병행하게 또는 병렬로 .. 더보기
공룡책 4장 스레드 이 글은 공룡책으로 유명한 운영체제 9판을 가지고 작성한 글입니다. 다르거나 이상한 점이 있다면 댓글로 알려주시면 감사하겠습니다. 앞선 3장 프로세스 글은 하나의 프로세스가 하나의 스레드를 가지고 프로그램을 실행한다고 가정했습니다. 그러나 현대 운영체제에서는 한 프로세스에 다중 스레드를 포함하는 특성을 가집니다. 스레드란? 스레드는 CPU 이용의 기본 단위입니다. 스레드는 스레드 ID, 프로그램 카운터, 레지스터 집합, 그리고 스택으로 구성됩니다. 스레드는 같은 프로세스에 속한 다른 스레드와 코드, 데이터, 운영체제 자원들을 공유합니다. 프로세스는 하나의 스레드는 반드시 가집니다. 만약 다수의 스레드를 가지면 프로세스는 한 번에 하나 이상의 작업을 수행할 수 있습니다. 이 두 가지의 차이가 단일 스레드,.. 더보기
공룡책 3장 프로세스 이 글은 공룡책으로 유명한 운영체제 9판을 가지고 작성한 글입니다. 다르거나 이상한 점이 있다면 댓글로 알려주시면 감사하겠습니다. 옛날엔 한 번에 하나의 프로세스만을 실행하도록 했지만, 오늘 날의 컴퓨터 발전으로 다수의 프로그램이 적재되어 실행되는 것을 허용하게 되었습니다. 그렇기에 프로그램을 보다 견고하게 제어해야하여 프로세스의 개념이 나오게 되었습니다. 프로세스란? 프로세스란 실행 중인 프로그램을 말합니다. 멀티태스킹(시분할) 시스템에서 작업의 단위가 되기도 합니다. 프로세스는 스택, 힙, 데이터, 텍스트 섹션들을 가지고 있습니다. 스택의 경우엔 함수의 매개변수, 복귀 주소, 지역 변수와 같은 임시적인 자료를 가지고 있습니다. 데이터는 전역 변수를 포함합니다. 힙의 경우엔 프로그램 실행 중에 동적으로.. 더보기

반응형
LIST