728x90

CSAPP 39

CSAPP 12.4 - 12.5

CSAPP 12.4 쓰레드 프로그램에서 공유변수 변수는 다수의 쓰레드가 이 변수의 일부 인스턴스를 참조할 때만 공유된다. 12.4.1 쓰레드 메모리 모델 동시성 쓰레드의 풀은 한 개 프로세스의 컨텍스트에서 돌아간다. 각각의 쓰레드는 자신만의 별도의 쓰레드 컨텍스트를 가진다. 각 쓰레드는 나머지 프로세스 컨텍스트를 다른 쓰레드와 공유한다. 여기에는 전체 사용자 가상 주소공간이 포함된다. 또한 동일한 오픈된 파일들을 공유한다. 동작적인 측면에서, 하나의 쓰레드가 다른 쓰레드의 레지스터를 읽거나 쓰는것은 불가능한 반면, 모든 쓰레드는 공유 가상메모리 내의 모든 위치에 접근할 수 있다. 만일 어떤 쓰레드가 한 메모리 위치를 수정하면, 그 위치를 읽는 다른 모든 쓰레드는 결국 이 변경사항을 알 수 있게된다. 그래..

책/CSAPP 2024.02.20

24.02.19 CSAPP, 백준, Keyword

CSAPP 12. 동시성 프로그램 논리적 제어흐름은 이들이 시간적으로 중첩되면 동시적이다. 이와 같은 현상을 동시성이라고 한다. 응용수준 동시성은 다양한 경우 유용하다. 느린 I/O 디바이스 접근하기 : 응용프로그램은 유용한 작업을 I/O요청과 겹치게 한다. 사람들과 상호 작용하기 : 사용자가 어떤 동작을 요청할 때 마다, 이 동작을 수행하기 위해 별도의 동시성의 논리 흐름이 생성된다. 작업을 지연시켜서 시간지연 줄이기 : 다른 동작을 지연시키고 이들을 동시에 수행해서 특정 독작의 시간 지연을 축소하기 위해 동시성을 이용한다 다수의 네트워크 클라이언트 처리 : 클라이언트마다 별도의 논리흐름을 생성하는 동시성 서버 멀티코어 머신에서 병렬로 계산하기 동시성 프로그램을 만들기 위한 세 개의 기본 접근방법 프로..

CSAPP 12-12.3

CSAPP 12. 동시성 프로그램 논리적 제어흐름은 이들이 시간적으로 중첩되면 동시적이다. 이와 같은 현상을 동시성이라고 한다. 응용수준 동시성은 다양한 경우 유용하다. 느린 I/O 디바이스 접근하기 : 응용프로그램은 유용한 작업을 I/O요청과 겹치게 한다. 사람들과 상호 작용하기 : 사용자가 어떤 동작을 요청할 때 마다, 이 동작을 수행하기 위해 별도의 동시성의 논리 흐름이 생성된다. 작업을 지연시켜서 시간지연 줄이기 : 다른 동작을 지연시키고 이들을 동시에 수행해서 특정 독작의 시간 지연을 축소하기 위해 동시성을 이용한다 다수의 네트워크 클라이언트 처리 : 클라이언트마다 별도의 논리흐름을 생성하는 동시성 서버 멀티코어 머신에서 병렬로 계산하기 동시성 프로그램을 만들기 위한 세 개의 기본 접근방법 프로..

책/CSAPP 2024.02.19

24.02.18 CSAPP 11, Keyword

24.02.18 CSAPP 11, Keyword CSAPP 11. 네트워크 프로그래밍 모든 네트워크 응용들은 동일한 기본적인 프로그래밍 모델에 기초하고 있으며 이들은 비슷한 전체 논리구조를 가지고 동일한 인터페이스를 사용한다. 11.1 클라이언트 - 서버 프로그래밍 모델 모든 네트워크 응용프로그램은 클라이언트 - 서버 모델에 기초하고 있다. 이 모델을 사용해서 응용은 한 개의 서버 프로세스와 한개 이상의 클라이언트 프로세스로 구성된다. 서버는 일부 리스소를 관리하고, 이 리소스를 조작해서 클라이언트를 위한 일부 서비스를 제공한다. 클라이언트 - 서버 모델에서 근복적인 연산은 트랜잭션이다. 클라이언트 - 서버 트랜잭션은 네 단계로 구성된다. 클라이언트가 서비스를 필요로 할 때, 클라이언트는 한 개의 요청을..

CSAPP 11

CSAPP 11. 네트워크 프로그래밍 모든 네트워크 응용들은 동일한 기본적인 프로그래밍 모델에 기초하고 있으며 이들은 비슷한 전체 논리구조를 가지고 동일한 인터페이스를 사용한다. 11.1 클라이언트 - 서버 프로그래밍 모델 모든 네트워크 응용프로그램은 클라이언트 - 서버 모델에 기초하고 있다. 이 모델을 사용해서 응용은 한 개의 서버 프로세스와 한개 이상의 클라이언트 프로세스로 구성된다. 서버는 일부 리스소를 관리하고, 이 리소스를 조작해서 클라이언트를 위한 일부 서비스를 제공한다. 클라이언트 - 서버 모델에서 근복적인 연산은 트랜잭션이다. 클라이언트 - 서버 트랜잭션은 네 단계로 구성된다. 클라이언트가 서비스를 필요로 할 때, 클라이언트는 한 개의 요청을 서버에 보내는 것으로 트랜잭션을 개시한다. 서버..

책/CSAPP 2024.02.18

크래프톤 정글 - 5-1Week 24.02.08 - 24.02.14 부제 : 설날과 CSAPP

회고 설날이 껴 있어서 1박2일 전주에 내려갔다 왔다. 오랜만에 가족, 친척을 봐서 좋았지만 내심 이렇게 2일동안 뒤쳐지는게 아닐까 하고 생각을 하기도 했다. 참 무서운 곳이다 정글은. 설날이 껴있기에 정글도 5주차를 2주동안 진행해서 5-1과 5-2로 나누도록 하겠다. 5-1주차에는 CSAPP에 집중하려고 노력했다. 일단 책의 범위도 많고, 한번 할 때 완벽하게는 당연히 못하지만 꼼꼼하게 잘 읽어놓으면 다음에 무조건 도움이 될 것이라고 생각해서 하루에 한 챕터씩 끝내려고 노력했다. 정말 힘들었지만 그래도 CSAPP와 조금 더 친해진 느낌이 든다. 미래의 일이나 여러가지 고민이 점점 많아지는 것 같다. 내가 잘하고 있다고는 생각하지만 이게 언제까지 일지도 잘 모르겠고, 앞으로 잘 해낼 수 있을까도 음 사..

CSAPP 9

CSAPP 9. 가상 메모리 메모리를 보다 효율적이고 더 적은 에러를 갖도록 관리하기 위해서 현대의 시스템은 가상메모리(VM : Virtual Memory)이라고 알려진 메인 메모리 추상화를 제공한다. 가상 메모리는 한 개의 깔끔한 메커니즘을 사용해서 세 개의 중요한 기능을 제공한다. 메인 메모리를 디스크에 저장된 주소공간에 대한 캐시로 취급해서 메인 메모리 내 활성화 영역만 유지하고, 데이터를 디스크와 메모리안에 필요에 따라 전송하는 방법으로 메인 메모리를 효율적으로 사용한다. 각 프로세스에 통일된 주소공간을 제공함으로써 메모리 관리를 단순화한다. 각 프로세스의 주소공간을 다른 프로세스에 의한 손상으로부터 보호한다. 9.1 물리 및 가상주소 방식 컴퓨터 시스템의 메인메모리는 M개의 연속적인 바이트 크기..

책/CSAPP 2024.02.13

CSAPP 8

CSAPP 8. 예외적인 제어흐름 시스템들은 또한 내부 프로그램 변수에 의해 표시되지 않으며, 프로그램의 실행과는 반드시 관련되어 있지 않은 시스템 상태의 변화에도 반응할 수 있어야 한다. 급격한 변화를 예외적인 제어흐름이라고 부른다. 예외적인 제어흐름은 컴퓨터 시스템의 모든 수준에서 발생한다. 8.1 예외 상황 예외 상황은 부분적으로는 하드웨어와 운영체제에 의해서 구현된 예외적인 제어흐름의 한 가지 형태다. 예외 상황은 어떤 프로세서 상태의 변화에 대한 대응으로, 제어흐름의 갑작스런 변화다. 프로세서가 이벤트가 발생했다는 것을 감지하면, 예외 테이블이라고 하는 점프 테이블을 통해서 이 특정 종류의 이벤트를 처리하기 위해 특별히 설계 된 운영체제 서브루틴(예외처리 핸들러)으로 간접 프로시저 콜을 하게된다..

책/CSAPP 2024.02.12

CSAPP 6.1.2 - 6

CSAPP 6.1.2 디스크 저장장치 디스크의 구조 디스크는 원판(platter)로 구성된다. 각 원판들은 두개의 옆면 즉 표면으로 이루어져 있으며, 이들은 자성을 띤 기억 물질로 코팅 되어 있다. 원판의 중심부에 있는 회적하는 축(spindle)은 원판을 고정된 회전율로 돌려주며, 이 비율은 대개 분당 5,400 에서 15,000번 회전하는 비율(RPM)을 갖는다. 디스크는 일반적으로 밀봉된 저장기에 들어있는 한 개 이상의 원판들을 가진다. 디스크의 각 표면은 트랙이라고 하는 여러개의 동심원들로 이루어져있다. 각 트랙은 섹터들의 집합으로 나누어진다. 각 섹터는 섹터위에 자성물질로 인코딩 된 동일한 수의 데이터 비트(일반적으로 512바이트)를 가진다. 섹터들은 아무 데이터도 기록되지 않은 갭으로 분리되어..

책/CSAPP 2024.02.11

CSAPP 6.1

6. 메모리 계층구조 메모리 시스템은 여러가지 용량, 비용, 접근 시간을 갖는 저장장치들의 계층구조다. CPU 레지스터들은 가장 자주 이용하는 데이터를 보관한다. 작고 빠른 캐시 메모리는 CPU부근에서 비교적 느린 메인메모리에 저장된 데이터와 인스트럭션들의 부분집합에 대한 준비장소로 사용된다. 메인메모리는 크고 느린 디스크들에 저장된 데이터를 준비하는데 사용되고, 다시 이 디스크들은 네트워크로 연결된 다른 머신들의 디스크나 테이프에 저장된 데이터를 위한 준비장소로 사용된다. 메모리 계층구조는 잘 작성된 프로그램이 어느 특정 수준의 저장장치를 다음 하위 수준의 저장장치보다 좀 더 자주 접근하는 경향을 갖기 때문에 작동하다. 그래서 다음 수준에 있는 저장장치는 더 느릴 수 있으며, 비트당 크기도 더 크고 값..

책/CSAPP 2024.02.09
728x90