전체 글

· 개발
Docker 데몬이 실행 중이 아니거나 Docker 클라이언트가 데몬에 접근할 수 없을 때 발생. Docker 데몬이 실행중인지 확인하기 위해"docker info" 로 확인 하였다. 확인 결과 실행이 안 되어 있어 발생한 것으로 추정된다. Docker Desktop을 사용하고 있기 때문에 Docker Desktop을 재시작 해주니까 해결되었다.
교착상태 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해 다음 처리를 하지 못하여 무한히 다음 자원을 기다리는 상태를 말한다. 시스템적으로 한정된 자원을 여러 곳에서 사용하려 할 때 발생한다.   데드락이 일어나는 경우 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 사용시간의 정보, 각종 스케줄러에 필요한 정..
백수왕
비전공자에서 주니어 개발자까지