전체 글 76

[운영체제 공룡책] 10장 가상 메모리

10.1 Background 프로그램을 실행하려면 명령어가 물리 메모리에 있어야 하지만, 물리 메모리의 크기는 제한적이다.프로그램 전체가 항상 필요하지는 않으며, 오류 처리 코드나 필요 이상으로 할당된 배열 등은 거의 사용되지 않는다.프로그램의 일부만 메모리에 로드하여 실행할 수 있다면, 더 많은 프로그램을 동시에 실행할 수 있고, 성능도 향상될 것이다. 가상 메모리(Virtual memory) 개념가상 메모리는 논리 메모리와 물리 메모리를 분리하여, 실제 물리 메모리보다 훨씬 큰 메모리 공간을 제공하는 방식이다.개발자는 물리 메모리 크기를 신경 쓰지 않고 프로그램을 작성할 수 있다. 가상 주소 공간(virtual address space) 프로세스가 메모리에 저장되는 방식에 대한 논리적(또는 가상) 보..

[운영체제 공룡책] 9장 메인 메모리

9.1 배경컴퓨터 시스템에서 메모리는 핵심적인 역할CPU는 프로그램 카운터 값을 기반으로 메모리에서 명령어를 가져와 실행한다.메모리는 주소의 연속적인 배열로 구성되며, CPU는 명령어 실행 과정에서 추가적인 메모리 접근을 수행할 수 있다.9.1.1 기본 하드웨어CPU가 직접 접근할 수 있는 저장소는 레지스터와 메인 메모리이다.하지만 메모리는 레지스터보다 접근 속도가 느려, CPU는 데이터를 가져오는 동안 대기해야 한다. 이를 해결하기 위해 캐시 메모리를 CPU와 주 메모리 사이에 배치해 성능을 향상시킨다.운영체제와 사용자 프로세스를 보호하기 위해 기본 레지스터(Base Register)와 한계 레지스터(Limit Register)를 사용한다.기본 레지스터는 접근 가능한 메모리의 최소 주소를, 한계 레지스..

[C언어로 쉽게 풀어쓴 자료구조] 14장 해싱

14.1 해싱이란?산술적인 연산을 적용하여 항목이 저장되어 있는 테이블의 주소를 계산하여 항목에 접근키에 대한 연산에 의해 직접 접근이 가능한 구조를 해시 테이블(Hash Table)이라고 부른다.해시 테이블을 이용한 탐색을 해싱(Hashing)이라 한다.14.3 해싱의 구조해싱에서 자료를 저장하는데 배열을 사용한다.해시 함수란 키를 입력으로 받아 해시 주소를 생성하고 이 해시 주소를 해시 테이블의 인덱스로 사용한다.서로 다른 두 개의 키에 대해 h(k1) = h(k2)인 경우를 충돌(collision)이라 한다.이러한 키 k1과 k2를 동의어(synonym)이라고 한다.충돌이 자주 발생하는 경우 해시 함수를 수정하거나 해시 테이블의 크기를 적절히 조절해야함충돌이 버킷에 할당된 슬롯 수보다 많이 발생하면..

[C언어로 쉽게 풀어쓴 자료구조] 13장 탐색

13.1 탐색이란?여러 개의 자료 중에서 원하느 자료를 찾는 작업이다.13.2 정렬되지 않은 배열에서의 탐색순차탐색정렬되지 않은 배열의 항목들을 처음부터 마지막까지 하나씩 검사하여 원하는 항목을 찾는 방법int seq_search(int key, int low, int high){ int i; for (i = low; i   개선된 순차 탐색리스트의 끝에 찾고자 하는 키 값을 저장하고 반복문의 탈출 조건을 키 값을 찾을 때까지로 설정하도록 수정int imporved_seq_search(int key, int low, int high){ int i; list[high+1] = key; // 키 값을 찾으면 종료 for(i=low; list[i] != key; i++) ; ..

[데이터 통신과 네트워킹-TCP/IP프로토콜 기반] 10장 응용층

10.1 소개10.1.1 서비스 제공응용 계층은 사용자와 직접 상호작용하는 유일한 계층이고 이 계층에서 새로운 응용 프로그램이 지속적으로 추가되며 인터넷의 발전을 이끌고 있다. 표준 및 비표준 프로토콜표준 프로토콜: 인터넷 기관에 의해 공식적으로 문서화된 프로토콜로, 운영체제에 기본 포함됨 (예: HTTP, FTP, SMTP 등).비표준 프로토콜: 특정 기업이나 개인이 필요에 따라 별도로 개발하는 프로토콜. 표준 승인이 필요 없으며, 기업 내부 통신을 위한 맞춤형 프로토콜을 만들 수 있음.10.1.2 응용 계층 패러다임인터넷에서 두 개의 응용 프로그램이 서로 통신하려면, 하나는 한쪽 컴퓨터에서 실행되고, 다른 하나는 다른 컴퓨터에서 실행되어야 한다. 이러한 관계를 정의하는 방식으로 클라이언트-서버 패러다..

[데이터 통신과 네트워킹-TCP/IP프로토콜 기반] 9장 전송층

9.1 전송층 서비스전송층은 응용층에 서비스를 제공하는 책임이 있다. 9.1.1 프로세스-대(to)-프로세스 통신메시지를 적절한 프로세스로 전달하는 역할은 전송 계층이 수행9.1.2 주소 지정: 포트 번호 IP 주소: 통신할 호스트(컴퓨터)를 식별포트 번호: 호스트 내 특정 프로세스를 식별클라이언트는 일시적인(ephemeral) 포트 번호(1024~65,535)를 사용서버는 잘 알려진(well-known) 포트 번호(0~1023)를 사용포트 번호 범위:0~1023: ICANN이 관리하는 잘 알려진(well-Known) 포트1024~49,151: 등록 가능하지만 관리되지 않는 등록(registered) 포트49,152~65,535: 완전히 자유롭게 사용 가능한 동적(dynamic) 포트소켓 주소(Socke..