본문 바로가기

CS10

OSI 7계층 네트워크 기초 - OSI 7계층 이해 1. OSI 7계층 (Open Systems Interconnection Model)7응용 계층사용자 인터페이스, 웹/이메일 등6표현 계층데이터 인코딩, 암호화 등5세션 계층세션 설정, 유지, 종료4전송 계층 (TCP/UDP)신뢰성 있는 전송 (TCP), 속도 (UDP)3네트워크 계층 (IP)라우팅, IP 주소 관리2데이터 링크 계층MAC 주소, 프레임 생성1물리 계층전기 신호, 케이블, 비트 전송   2. 데이터 흐름: 계층의 동작 방향송신자 측: 위 → 아래(응용 계층부터 시작 → 물리 계층까지 내려가며 캡슐화)수신자 측: 아래 → 위(물리 계층부터 위로 올라오며 역캡슐화)  3. 캡슐화란?상위 계층의 데이터를 하위 계층이 "자기 헤더로 감싸서" 전송실제 흐름:H.. 2025. 4. 2.
캐시(Cache) 메모리와 CPU, 컴퓨터 시스템의 두 핵심 구성 요소는 폰 노이만 구조 모델을 기반으로 상호 작용한다.CPU의 기계 명령어와 데이터가 모두 메모리에 저장되어 있어야 하며, 레지스터가 존재하지만 레지스터의 용량은 극히 제한적이기 때문에 프로그램이 실행되는 동안 CPU는 메모리와 빈번하게 상호 작용을 해야 한다. 폰 노이만 구조를 단순하게 생각해보면, CPU가 직접 메모리를 읽고 쓰는 것처럼 보이지만, 현실의 컴퓨터는 이처럼 단순하게 작동되지는 않는다. Why?A. CPU와 메모리의 속도 차이!시스템 성능은 느린 쪽에 맞추어 제한되므로, CPU가 아무리 빨라지더라도 메모리의 속도에 따라 컴퓨터 성능은 항상 제한적일 수 밖에 없다.일반적으로 메모리의 속도는 CPU의 100분의 1에 불과하며, CPU가 메모리를.. 2024. 7. 30.
CPU와 컴퓨터 시스템 CPU와 운영 체제CPU의 유휴 상태대부분 컴퓨터의 CPU 사용률은 높지 않다. 아무 작업도 일어나지 않을 때, 컴퓨터는 무엇을 하고 있을까?CPU 사용률을 확인해 보면, System Idle Process(유휴 프로세스)가 거의 모든 CPU 시간을 소모하고 있다. 이는 운영 체제의 프로세스 관리 체계에서 그 이유를 알 수 있다.운영 체제는 프로세스에 우선순위를 할당하고, 우선순위에 따라 스케줄러가 스케줄링할 수 있도록 대기열에 프로세스를 넣는다.운영 체제는 대기열을 가득 채워 스케줄러가 대기열에서 항상 실행할 수 있는 프로세스를 찾을 수 있도록 한다. (NULL 가능성 제거)시스템에 스케줄링 가능한 프로세스가 없을 때 스케줄러는 유휴 프로세스를 꺼내서 실행하며, 시스템에 할 일이 남아 있지 않으면 유휴.. 2024. 7. 16.
CPU(중앙 처리 장치, Central Processing Unit) CPU의 기본 구현 원리하드웨어와 소프트웨어 간의 인터페이스 : 명령어 집합컴퓨터는 하드웨어와 소프트웨어로 이루어져 있는데,하드웨어의 기본 기술은 기계 명령이고, 소프트웨어는 이 명령어들의 레시피와 같다. CPU의 조합 회로들로 논리 함수를 모두 표현할 수 있지만, 모든 논리 함수를 조합 회로로 만들어서 사용하는 것은 비현실적이다.하드웨어는 가장 기본적인 기능만 제공하고, 모든 연산 논리는 이 기본 기능을 이용하여 소프트웨어로 표현하는 것이 좋은 방법이다.하드웨어는 변하지 않지만, 소프트웨어는 변할 수 있다.컴퓨터는 하드웨어에 서로 다른 소프트웨어를 설치하여 서로 다른 기능을 가질 수 있다.(강력한 범용성) 하드웨어의 CPU는 연산 능력만 제공하며, 프로그래머가 피연산자를 제공하는데CPU의 연산 능력의 .. 2024. 7. 16.
동기와 비동기, 블로킹과 논블로킹 동기 vs 비동기동기: 종속적, 연관된, 기다림 = 전화 통화비동기: 비종속적, 무관한, 기다릴 필요 없는, 동시 발생 = 이메일 동기(synchronization)동기 방식이란?동기 방식은 일반적인 함수 호출 방식으로,funcA 함수가 funcB 함수를 호출하면 funcB 함수 실행이 완료될 때까지 funcA 함수의 다음 코드는 실행되지 않고 대기한다.이 때 보통 funcA 함수와 funcB 함수가 동일한 스레드에서 실행된다. 동기 호출은 호출자/수신자가 동일 스레드에서 실행되는지 여부는 상관 없다. 예를 들어 동기 호출에서 비교적 특수한 상황으로 입출력 작업(blocking input/output)을 보면,read 함수를 호출하여 파일을 읽는 작업을 할 경우최하단 계층은 실제로 시스템 호출(syste.. 2024. 6. 26.
콜백 함수와 비동기 프로그래밍 콜백 함수(callback function)콜백 함수란 쉽게 이야기하면 "함수에 파라미터로 들어가는 함수"이며, "순차적으로 실행하고 싶을 때 사용"한다. 말 그대로 나중에 호출하는 함수, 코드를 통해 명시적으로 호출되는 함수이다. 코드를 작성할 때, 하나의 함수를 각기 다른 요청 파라미터로 호출할 경우 다른 실행을 하고 싶다면 요청 파라미터에 따라 if-else문을 각기 작성할 수도 있을 것이다. 하지만 이 요청 파라미터의 종류가 수없이 많아진다면 어떨까? 각 파라미터에 해당하는 if-else문을 만드는 것은 매우 잘못된 프로그래밍이다.코드에서 숫자 또는 문자를 직접 사용하여 프로그래밍을 하는 대신 int a, String b라는 변수를 이용하는 것처럼, 함수도 변수처럼 사용할 수 있다. 이렇게 하면 .. 2024. 6. 26.
728x90