본문 바로가기
반응형

Computer Systems15

파이썬에서의 배열 How are lists implemented in CPython? CPython’s lists are really variable-length arrays, not Lisp-style linked lists. The implementation uses a contiguous array of references to other objects, and keeps a pointer to this array and the array’s length in a list head structure. This makes indexing a list a[i] an operation whose cost is independent of the size of the list or the value of the index. .. 2023. 4. 2.
🖥[CSAPP] 11장. 소형 웹서버 Tiny를 만들어보자 (0) 서버와 클라이언트 통신 서버와 클라이언트의 통신 (CS:APP 그림 11.12) 서버 socket() : 연결 통로 준비 bind() : 특정IP와 연결 listen() : 연결 후 요청을 기다리기 accept() : read/write 또는 receive/send 메소드를 짝으로 사용하여 요청/응답 처리. 단, listen()에서의 스레드와 다른 스레드를 만들어 진행한다. 스레드 분리 이유: 서버는 여러 요청을 받아야 하기에, listen() 스레드는(母) 놔두고 계속 기다리게 하고, accept() 스레드는 (子) 요청을 처리하도록 만들어 둠 단, 우리 과제에서는 멀티프로세싱까지 다루지는 않음 클라이언트 socket() : 연결 통로 준비 connect() : 연결. 끝. 스레드 분리하지 않음.. 2022. 11. 10.
🖥[CSAPP] 11장. 네트워크 프로그래밍 HTTP 00. 요구사항 회원 정보 관리 API를 만들어주세요 - 회원 목록 조회 - 회원 조회 - 회원 등록 - 회원 수정 - 회원 삭제 리소스 : 회원 행위 : 조회, 등록, 삭제, 변경 01. API URI 설계 (리소스 식별, URI 계층 구조 활용) - 회원 목록 조회 : /members - 회원 조회 : /members/{id} - 회원 등록 : /members/{id} - 회원 수정 : /members/{id} - 회원 삭제 : /members/{id} 계층 구조상 상위 컬렉션으로 보고 복수단어 사용 권장(member-> members) 02. API URI 고민 (Uiform Resource Identifier) 1) 리소스의 의미는 뭘까? 회원의 행위를 나타내는 것을 리소스가 아니다. 회원이라는 .. 2022. 11. 7.
🖥[CSAPP] 3장. 프로그램의 기계수준 표현 00. 어셈블리어를 공부해야하는이유 컴퓨터는 데이터를 처리, 메모리 관리, 저장장치에 데이터를 읽거나 쓰고 네트워크를 통해 통신하는 등 많은 일을 하고 있다. 다양한 동작들을 수행하려면 인코딩한 연속된 바이트 기계어 코드가 실행된다. 컴파일러는 다양한 동작들을 인코딩한 기계어 코드로 생성한다. GCC C 컴파일러는 유닉스/리눅스 계열 플랫폼의 표준 컴파일러이다. 기계어 코드를 문자로 표시한 어셈블리 코드의 형태로 출력을 만들어 각 프로그램의 인스트럭션을 만들어낸다. 그리고 어셈블러와 링커를 호출하여 어셈블리어로부터 실행 가능한 기계어 코드를 생성한다. 자바를 포함해서 C같은 고급언어로 프로그램을 할 때, 우리가 작성한 프로그램이 기계수준에서 어떻게 구현되어 있는지 잘 드러나지 않는다. 반면, 어셈블리 코.. 2022. 11. 6.
반응형