본문 바로가기

태그를 입력해 주세요.

9장 네트워킹 - 1 컴퓨터는 통신 프로토콜이라는 하나의 약속을 정해 서로 통신을 하게 됩니다. 네트워크에선 사람들의 이름처럼 구별할 수 있는 고유의 명칭이 필요합니다. 이를 NIC(Network Interface Card)마다 지정되어 있는 IP주소를 통해 표현합니다. 한 컴퓨터에서 다양한 사용자 프로그램들이 한 개의 NIC를 통해 동시에 통신하려는 경우엔 각각의 사용자 태스크를 구분하기 위해 고유의 번호가 필요해집니다. 이를 포트(port) 번호라고 합니다. 통신을 하기 위한 양측은 서로 IP주소와 포트 번호를 알고 있어야 하고 미리 정해진 약속, 즉 프로토콜을 지켜야만이 통신이 가능해집니다. 프로토콜은 계층 구조로 이루어져 있습니다. OSI 7 계층이라고 1학년 때 컴퓨터 개론들을 때, 정보처리 산업기사 공부할 때 들었.. 더보기
6장 인터럽트와 트랩 그리고 시스템 호출 1.인터럽트 처리과정 먼저 인터럽트란 주변 장치와 커널의 통신 방식으로 주변 장치나 CPU가 자신에게 발생한 사건을 리눅스 커널에게 알리는 메커니즘으로 외부 인터럽트와 트랩이 있습니다. 외부 인터럽트현재 수행중인 태스크와 관련 없는 주변장치에서 발생된 비동기적 하드웨어 사건(비동기적이란 뜻은 언제 발생할지 그 시간을 정확히 알 수 없다는 뜻을 말합니다.)트랩동기적으로 발생하는 사건, 0으로 나누기, 세그멘테이션 폴트인터럽트나 트랩이 발생하면, program counter를 정해진 특정 번지로 변경해 처리 루틴이 적절한 작업을 하게 됩니다. 리눅스는 외부 인터럽트와 트랩을 통일하게 처리합니다. 다양한 CPU에서 커널 내부구조의 수정 없이 인터럽트를 처리하기 위해 idt_table의 0~31까지는 트랩을 할.. 더보기
3장 태스크 관리 - 1 2장에서는 리눅스 커널의 내부 구조에 대해 간략하게 살펴보았습니다. 3장에선 태스크에 대해 배웁니다. 태스크란 '자원 소유권의 단위'를 말합니다. 프로세스란 동작중인 프로그램으로서 디스크에 저장되어있는 실행 가능한 형태의 파일입니다. ┕ 바이너리 기계 명령어, 수행에 필요한 자료들의 집합을 의미합니다. 실행파일 자체는 그저 디스크에 저장된 수동적인 존재로 프로그램이 동작하기 위해선 리눅스 커널로부터 CPU 등의 자원을 할당 받을 수 있는 동적인 객체가 되어야만 합니다. ┕ 이를 프로세스 라 부르고 프로세스는 커널의 적절한 스케쥴링에 의해 할당 받은 자신만의 자원을 가지고 CPU가 기계어 명령들을 실행함 에 따라 끊임없이 변화하는 동적인 존재를 말합니다. 프로세스에 대해 사용자 입장과 커널 입장에서 살펴보.. 더보기