CS/운영체제9 메모리 메인 메모리 메인 메모리는 CPU가 직접 접근할 수 있는 기억 장치 프로세스가 실행되려면 프로그램이 메모리에 올라와야 합니다. 주소가 할당된 일련의 바이트들로 구성되어 있습니다. CPU는 레지스터가 지시하는대로 메모리에 접근하여 다음에 수행할 명령어를 가져옵니다. 명령어 수행 시 메모리에 필요한 데이터가 없으면 해당 데이터를 우선 가져와야 합니다. 이 역할을 하는 것이 바로 MMU입니다. 메모리 관리 장치(MMU)는 논리 주소를 물리주소로 변환해줍니다. 뿐만 아니라 메모리 보호나 캐시 관리 등 CPU가 메모리에 접근하는 것을 총 관리해주는 하드웨어입니다. 메모리의 공간이 한정적이기 때문에, 사용자에게 더 많은 메모리를 제공하기 위해 '가상 주소'라는 개념이 등장했습니다. 이 가상 주소가 실제 데이터가 담.. 2021. 8. 30. 메모리 관리 전략, 페이징, 세그멘테이션 메모리 관리 배경 각각의 프로세스는 독립된 메모리 공간을 갖고, 운영체제 혹은 다른 프로세스 메모리 공간에 접근할 수 없는 제한이 걸려있다. 스와핑 : 메모리의 관리를 위해 사용되는 기법으로 라운드 로빈과 같은 스케줄링의 다중 프로그래밍 환경에서 CPU 할당 시간이 끝난 프로세스의 메모리를 보조 기억장치로 내보내고 다른 프로세스의 메모리를 불러 들일 수 있다. 단편화 (Fragmentation) : 프로세스들이 메모리에 적재되고 제거되는 일이 반복되다보면, 프로세스들이 차지하는 메모리 틈 사이에 사용하지 못 할 만큼의 작은 자유공간들이 늘어나게 되는데, 이것이 단편화이다. - 외부 단편화 : 메모리 공간 중 사용하지 못하게 되는 일부분. 물리 메모리(RAM)에서 사이사이 남는 공간들을 모두 합치면 충분한.. 2021. 8. 19. 프로세스 동기화 동기화 (Synchronization) 두 개의 프로세스 A, B가 공유 메모리를 이용해 데이터를 주고받는데 A가 쓰면 B가 읽어 가야 된다. 하지만 동기화가 없을 경우 A가 쓰고 난 뒤인지 전인지 알 수 있는 방법이 없다. 따라서 프로세스 또는 스레드들이 수행되는 시점을 조절화는 것을 동기화라고 한다. 임계 영역 (Critical Section) 여러 프로세스가 데이터를 공유하며 수행될 때, 각 프로세스에서 공유 데이터를 접근하는 프로그램 코드 부분 이러한 영역에는 동시에 공유 데이터에 접근하여 잘못된 결과를 만들 수 있기 때문에, 한 프로세스가 임계 영역을 수행할 때에는 다른 프로세스가 접근하지 못하도록 막아야 한다. 임계 영역 문제를 해결하기위한 3가지 조건 상호 배제 (Mutual excultio.. 2021. 7. 28. 교착상태 (DeadLock) 교착상태 (DeadLock) 프로세스가 자원을 얻지 못해서 다음 처리를 하지 못하는 상태 시스템적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 가리킨다. 임계영역의 경쟁조건을 회피하도록 설계되었지만, 이러한 도구를 사용할 때 락을 획득하고 방출되는 방식에서 서로의 락 방출만 기다리는 교착 상태가 발생할 수 있다. 교착상태 발생조건 발생조건 4가지 모두 성립해야 데드락이 발생 1. 상호배제 (Mutual exclusion) - 자원의 특성 하나의 자원은 한번에 한 프로세스만 사용가능하다. 2. 점유 대기 (Hold and wait) - 프로세스의 특성 프로세스가 하나 이상의 자원.. 2021. 7. 27. 이전 1 2 3 다음