OSI 7계층과 TCP/IP 4계층과의 차이점은?
OSI 계층에선 애플리케이션 계층, 프레젠테이션계층, 세션계층으로 나뉘어져 있는 반면 TCP/IP계층에선 이를 애플리케이션 계층이라 묶어 칭함. 데이터링크계층, 물리계층 - > 링크계층
네트워크계층->인터넷계층
HTTP2를 설명하고 장점 두가지를 말해보자.
HTTP2는 HTTP/1.X보다 지연시간은 줄이고, 응답시간은 더빠르게 할 수 있으며, 멀티플렉싱, 헤더압축, 서버푸시, 요청의 우선순위 처리를 지원하는 프로토콜.
멀티플렉싱
여러개의 스트림을 사용해 송수신한다는것 특정 스트림의 패킷이 손실돼도 해당스트림에만 영향을 줄뿐 나머지 스트림에는 영향 X서버푸시
HTTP2는 클라이언트 요청없이 서버가 바로 리소스를 푸시하는것 html 파일을 읽으면서 안에있던 css파일을 서버에서 푸시하여 클라이언트에 먼저 제공가능.
www.naver.com을 주소창에 입력하면 어떻게 될까요?
대기열, 캐싱, DNS, 라우팅, ARP, 초기연결을 거쳐 컨텐츠를 다운받게 되고 이 후 브라우저렌더링 과정을 거쳐 네이버라는 화면이 나타나게 된다. 또한 이러한 과정이 캡슐화, 비캡슐화과정을 거쳐서 이뤄지게 된다.
운영체제와 컴퓨터
운영체제의 구조
GUI가 없고 CUI만 있는 리눅스서버도 있음.
시스템콜
운영체제가 커널에 접근하기 위한 인터페이스 유저프로그램이 운영체제의 서비스를 받기위해 커널 함수를 호출할때 사용.
유저프로그램이 I/O요청으로 트랩(trap)을 발동하면 올바른 I/O요청인지 확인후 유저모드가 시스템콜을 통해 커널모드로 변환되어 실행.
EX)
fs.readFile()예시를 들면
유저가 직접 파일을 읽지않고 커널모드로 들어가 파일을 읽고 유저모드로 돌아간뒤 유저프로그램의 로직을 수행.
이는 컴퓨터자원에 대한 직접접근을 차단하고 다른프로그램으로 부터 보호 할 수 있음.
시스템콜은 하나의 추상화 계층 => 네트워크 통신이나 데이터베이스와 같은 낮은 단계의 영영처리에 대한 부분을 신경쓰지않고 프로그램을 구현할 수 있는 장점.
시스템콜이 동작 될때 modebit 참고해서 유저모드/커널모드를 구분 1또는 0의 값을 가지는 플래그 변수
카메라,키보드 등 I/O디바이스는 운영체제를 통해서만 작동되야함. 커널모드를 거쳐 운영체제를 작동한다해도 100% 막을순 없지만 운영체제를 통해 작동하게 해야 막기 쉬움. 이런 장치가 바로 modebit
유저모드
유저가 접근 할 수 있는 영역을 제한적으로 두며 컴퓨터 자원에 함부로 침범하지 못하는 모드
커널모드
모든 컴퓨터 자원에 접근 할 수 있는 모드
커널
운영체제의 핵심 부분이자 시스템콜 인터페이스를 제공하며 보안,메모리 ,프로세스,파일 시스템,I/O디바이스,I/O요청관리등 운영체제의 중추적인 역할.
CPU
산술논리연산장치,제어장치,레지스터로 구성되어있는 컴퓨터 장치를 말하며, 인터럽트에 의해 단순히 메모리에 존재하는 명령어를 해석해서 실행하는 일꾼.
제어장치
프로세스 조작을 지시하는 CPU의 부품.
입출력장치간 통신을 제어하고 명령어들을 읽고 해석하며 데이터 처리를 위한 순서를 결정
레지스터
임시기억장치 CPU와 직접연결되어있어 연산 속도가 메모리보다 수십~수백배까지 빠름. CPU는 자체적으로 데이터를 저장할 방법이 없기때문에 레지스터를 거쳐 데이터를 전달.
산술논리연산장치
덧셈 뺄셈 같은 두숫자의 산술 연산과 배타적 논리합,논리곱같은 논리연산을 계산하는 디지털 회로.
CPU의 연산처리는 책그림으로 확인.
인터럽트
어떤신호가 들어왔을때 CPU를 잠깐 정지시키는것을 말함.
키보드 마우스 IO디바이스로 인한 인터럽트,0으로 숫자를 나누는 산술연산에서의 인터럽트 , 프로세스 오류등으로 발생.
인터럽트 발생 -> 인터럽트 벡터 -> 인터럽트 핸들러 함수실행 우선순위가 있으며,
- 하드웨어 인터럽트
키보드를 연결한다거나 마우스를 연결하는일 등의 IP디바이스에서 발생하는 인터럽트
순차적인 인터럽트 실행을 중지하고 운영체제에 시스템콜을 요청해서 원하는 디바이스로 ㅑㅇ해 디바이스에 있는 작은 로컬버퍼에 접근하여 일을 수행- 소프트웨어 인터럽트
trap이라고도 함 프로세스 오류등으로 프로세스가 시스템콜을 호출할때 발동.
DMA컨트롤러
I/O디바이스가 메모리에 직접접근할 수 있도록 하는 하드웨어 장치.
CPU에만 너무많은 인터럽트 요청이 들어오기에 부하를 막아주며 일을 부담하는 보조일꾼. 하나의 작업을 CPU와 DMA컨트롤러가 동시에 하는것을 방지.
메모리
전자회로에서 데이터나 상태,명령어등을 기록하는 장치 RAM을 일컬어 메모리라고 함.
CPU- 계산(일꾼)/ 메모리-기억(작업장)
타이머
몇초안에는 작업이 끝나야한다는 것을 정하고 특정프로그램에 시간을 제한하는 역할.
디바이스컨트롤러
컴퓨터와 연결되어있는 IO디바이스들의 작은 CPU를 말함.