CS

교착상태 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해 다음 처리를 하지 못하여 무한히 다음 자원을 기다리는 상태를 말한다. 시스템적으로 한정된 자원을 여러 곳에서 사용하려 할 때 발생한다.   데드락이 일어나는 경우 Thread2는 A를 점유하고 있으면서 B의 자원을 요청, B의 자원을 습득할 때 까지 대기Thread3는 B를 점유하고 있으면서 A의 자원을 요청, A의 자원을 습득할 때 까지 대기서로 상대방이 자원을 내놓기를 바라면서 무기한 연기에 빠지는 상황현재 서로 원하는 자원이 상대방에 할당되어 있어서 두 프로세스는 무한정 wait 상태에 빠진다.   데드락 발생 조건 데드락은 4가지 조건이 모두 성립해야 발생한다.(하나라도 성립하지 않으면 데드락 문제를 해결할 수 있다) 상호 배제자원..
여러 개의 프로세스가 동시에 실행할 수 있는 멀티 코어 시스템은 성능이 좋아지지만 동시에 프로세스 간의 공유 자원 접근 관리라는 문제가 생겼다. 즉, 공유 자원에 여러 프로세스나 스레드가 동시에 접근하면 문제가 발생하는데 이렇게 다수의 컴포넌트가 공유 중인 자원을 동시에 읽거나 수정할 때 생기는 문제를 동기화 문제라고 한다. 이런 문제는 스핀락 뮤텍스 세마포어를 통해 해결할 수 있다. 더보기서로 알고 있는 정보를 일치시키는 것. 아이폰을 맥북에 동기화 시키면 아이폰의 정보를 맥북에서 알 수 있다.ex) 카카오톡, 메시지, 전화  임계영역프로세스 간의 공유 자원을 접근하는데 있어 문제가 발생하지 않도록 한 번에 하나의 프로세스만 이용하며 다른 프로세스들의 접근을 제한하는 영역이다. 임계 영역의 규칙상호배제..
가상 메모리 주소를 물리적인 주소로 변환하는 속도를 높이기 위해 사용되는 캐시다. 페이지 테이블은 메인 메모리에 존재하므로 CPU가 메인 메모리에 최소 2번 접근해야 원하는 데이터를 얻을 수 있다.한 번은 페이지 테이블에 접근, 또 한 번은 페이지 테이블을 기반으로 실제 메모리에 접근한다. 이런 메모리의 접근을 줄이고자 나온 게 TLB (Translation Look-aside Buffer)다.하드웨어적으로 지원하여 page table의 임시저장 cache 역할을 한다. Translation Lookaside Buffer  TLB(Translation Lookaside Buffer, 페이지 정보 캐시) TLB는 최근에 읽었던 page table을 매핑하여 저장하는데 크기는 64 ~ 1024 entry 정..
요구 페이징사용자가 요청할 때 메모리로 가져오는 것으로 이를 요구 페이징이라고 한다. 맥북을 오래 사용했을 때 느려지는 경험을 한 적이 있다.이때 껏다 키면 다시 빨라진다.오래 켜두었을 때 느려지는 이유는 작업을 하지 않고 쉬는 프로세스나 좀비 프로세스가 메모리를 차지하여 메모리 관리가 복잡해지기 때문이다.따라서 메모리엔 꼭 필요한 프로세스만 유지하는 것이 좋다. 운영체제는 프로세스를 구성하는 모듈을 전부 메모리에 올리지 않고 필요한 모듈만 올린다. 이렇게 관리하는 이유는메모리가 꽉 차면 관리가 어렵고 용량이 큰 프로세스를 저부 가져와 실행하면 느려질 수 있기 때문이다.  EX) 블로그 작성의 경우 작성 외에 글시체에 관련된 기능들이 있다.글을 작성할 때 바로 글시체에 관련된 모든 기능들을 메모리에 올리..
Over View 메모리 연속 할당 기법 프로세스를 메모리에 올릴 때 주소 공간을 메모리의 한 곳에 연속적으로 적재하는 방식이다. 연속 할당 방식은 물리적 메모리를 다수의 분할로 나눠 하나의 분할에 하나의 프로세스가 적재되게 한다.연속 할당은 크게 고정분할과 가변분할로 나뉜다.   고정분할 방식물리적 메모리를 정해진 개수만큼의 영구적인 분할로 나눠 각 분할에 하나의 프로세스를 적재하는 방식. 분할의 크기는 모두 동일하거나 다를 수 있다. 고정분할 방식은 동시에 메모리에 올리 수 있는 프로그램의 수가 고정되어 있고수행 가능한 프로그램의 최대 크기 또한 제한된다는 점에서 가변분할 방식에 비해 융통성이 떨어진다. 또한 고정분할 방식은 외부조각과 내부조각 문제가 발생할 수 있다.더보기내부 단편화 : 분할 크기보..
가상 메모리(Virtual Memory) 메모리가 실제 메모리보다 많아 보이게 하는 기술로, 어떤 프로세스가 실행될 때 메모리에 해당 프로세스 전체가 올라가지 않더라도 실행이 가능하다는 점에 착안하여 고안된 메모리 기법이다.  가상 메모리를 사용하는 이유 물리 메모리는 컴퓨터에 장착된 실제 메모리로서 최대 크기는 CPU에 의해 제한된다. 그러면 운영체제는 물리 메모리보다 큰 프로세스를 실행시킬 수 없을까?또한 운영체제는 여러 프로세스를 합쳐 물리 메모리보다 클 때 이들을 동시에 실행시킬 수 없을까?에 대한 해답으로 가상 메모리 기법이 등장했다. 결국 가상 메모리는 물리 메모리보다 큰 프로세스나 여러 개의 작은 프로세스를 동시에 실행시켜,사용자나 응용프로그램에 무한대의 메모리가 있다고 느끼게 하는 것이다...
Process Management 구동중인 프로세스가 여러 개일 때, CPU 스케줄링을 통해 프로세스를 관리하는 것을 말한다.CPU들은 각 프로세스들에 대해 구분할 수 있어야 관리가 가능하다.그래서 프로세스들의 특징을 갖고 있는 것이 Process Metadata이다. Process Metadata가 갖고있는 정보프로세스 고유 ID (PID)프로세스 상태 : 준비, 실행, 대기 상태를 기억.프로세스 우선순위 (스케줄링 정보)Program Counter (PC) : 다음에 실행될 명령어의 주소를 기억.CPU 레지스터 : 레지스터 상태 저장, CPU 내 범용 레지스터, 데이터 레지스터, 세그먼트 레지스터 등이 갖고 있는 값을 기억.Owner (계정정보) : CPU 사용시간의 정보, 각종 스케줄러에 필요한 정..
인터럽트 주변장치와 입출력 장치는 CPU나 메모리와는 달리 인터럽트라는 메커니즘을 통해 관리된다. 인터럽트는 입출력 장치의 연산이 CPU의 명령 수행 속도보다 느리기 때문에 필요하다. 예를 들어 사장이 신입을 연봉 5000에 데려온 경우 신입이 5000 값어치를 하길 바란다.근데 영업사원이 영업을 못 해서 신입이 매번 쉬기만 한다면 사장은 계속 돈만 날리고 있는 셈이다.그래서 신입이 쉬지 못하도록 영업을 해오기 전까지 계속 다른 일을 시키고 있다가영업을 해오면 영업사원이 신입에게 영업해 온 게 있으니 이 일을 먼저 하라고 알리게 된다.이때 영업사원이 신입에게 일을 따왔다고 알려 먼저 이 일을 먼저 하라고 알리는 것이 인터럽트이다. 컴퓨터 관점으로 보게 되면 CPU가 프로그램을 실행할 때, 입출력 하드웨어..
백수왕
'CS' 카테고리의 글 목록