본문 바로가기

CS12

가상메모리와 페이지 교체 알고리즘 가상 메모리(Virtual Memory) 개념 물리 메모리의 한계(크기 등)을 극복하기 위해 사용한다. 핵심은 프로세스 or 프로그램 전체를 메모리에 올리는 것이 아니라, 필요한 부분만 메모리에 적재하는 것이다. 적재 여부는 페이지 테이블에 표시된다. 실행될 가능성이 낮은 코드, 행렬 리스트와 같이 필요한 크기 이상으로 선언된 변수 등은 굳이 적재시키지 않는다. 메모리가 꽉 차면 무슨 기준으로 페이지를 쫓아내야 하는가 => 참조 지역성 참조 지역성(Locality of reference) 동일한 값 또는 해당 값에 관계된 스토리지 위치가 자주 액세스 되는 특성을 말한다. 가상 메모리 방식이 효과적임을 뒷받침하는 원리이다. 시간, 공간, 순차 지역성이 있다. 1. 공간 지역성: 특정 클러스터의 기억 장소들.. 2022. 6. 13.
해시 충돌(Hash Collision)과 최적화 방법 해시 충돌 해시함수는 해시테이블의 키 값으로 레코드가 저장되어 있는 주소(또는 색인)을 산출하는 함수이다. 다른 내용의 데이터가 같은 키를 갖는 상황을 해시 충돌이라고 하는데, 같은 키 값이 생긴다는 것은 특정 키의 버켓에 데이터가 집중된다는 뜻이다. 따라서 빈번한 해시 충돌은 해시테이블의 성능을 저하시킨다. 해결 방법 1) 체이닝 버켓 내에 연결리스트를 할당하여, 버켓에 데이터를 삽입하다가 해시 충돌이 발생하면 연결리스트로 데이터를 연결하는 방식이다. 복잡한 계산식을 사용할 필요가 없고, 삭제 또는 삽입이 용이하다. 해결 방법 2) 개방 주소법 체이닝의 경우 버켓이 꽉 차더라도 연결리스트로 계속 늘려갈 수 있기 때문에 데이터의 주소값은 바뀌지 않는다. 그러나 개방 주소법은 해시 충돌이 일어나면 다른 버.. 2021. 11. 22.
MySQL Workbench의 다이어그램 자동 생성 MySQL Workbench를 열고 원하는 데이터베이스가 있는 서버에 연결을 해준다. 상단에 데이터베이스 메뉴에서 Reverse Engineer를 클릭해준다. 그럼 이런 창이 뜨는데 Stored Connection에서 서버를 선택해준다. 본인같은 경우에는 자동으로 작성이 되었지만 만약 비어있다면 Hostname, Username을 추가로 작성해주어야 한다. 모두 입력했으면 continue 클릭 암호를 올바르게 입력하면 연결할 준비가 됐다고 나온다. 역시 continue 클릭 ERD 추출을 원하는 데이터베이스를 선택하고 Continue를 클릭한다. 한 번 더 암호를 입력한다. 이제 추출할 준비가 됐나보다. continue 클릭 Execute를 눌러서 계속 진행한다. 만약 일부 테이블만 추출하고 싶다면 Sh.. 2021. 10. 12.
HTTP 상태코드 HTTP 웹 페이지와 같은 자원을 주고받을 때 사용하는 통신규약 상태코드 1xx: 조건부 응답, 요청을 받았으며 작업을 계속한다. 2xx: 성공, 클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며 성공적으로 처리했음 3xx: 리다이렉션 완료, 클라이언트는 요청을 마치기 위해 추가 동작을 취해야 함 4xx: 요청 오류, 클라이언트에 오류가 있음 5xx: 서버 오류, 서버가 유효한 요청을 명백하게 수행하지 못했음 2021. 10. 6.