비슷한 유형으로는 주소창에 www.google.com 검색하면 무슨 일이 일어나나요?
내가 본 건 구글 로고와 밑에 input을 받을 수 있는 검색창이 뜨는 모습이었다.
이 질문은 주소창에 url을 검색하고 엔터를 누른 후 구글 로고 검색창이 나오기까지의 과정 즉, web의 구동방식을 물어보는 질문이다.
엔진
다른 프로그램들을 위해서나, 특정 프로그램 내부에서 해당 프로그램 위해 핵심적이고 본질적인 기능을 수행해 주는 프로그램
bus interface
메인 메모리에 올라와 있는 프로그램이 bus를 통해 CPU로 들어오면 bus interface에서 해당 통신 방식을 이해시켜주고, 미리 실행하고 있는 연산이 있다면 register set에 저장해둔다. 이를 Control Unit에서 명령어를 해독 (decode) 후, ALU로 이동해서 연산(실행) 한다.
I/O 장치들은 직접 system bus에 접근할 수 없다. 다양한 I/O들의 길이와 속도가 다양하기 때문에 device controller를 거쳐서 전달하게 된다.
DMA(Direct Memory Access) : 직접 메모리 접근
특정 하드웨어의 하위 시스템이 CPU와 독립적으로 메인 메모리에 접근할 수 있게 해준다. 왜냐하면,
만약 모든 메모리 접근 연산이 CPU에 의해서만 이뤄진다면, 입출력 장치가 메모리 접근을 원할 때마다 interrupt에 의해서 CPU의 업무가 방해받아 CPU 사용 효율성이 떨어지기 때문이다. 해서 DMA로 CPU 발생 intterupt 빈도를 줄여주어 CPU를 좀 더 효율적으로 관리 및 입출력 연산 빠르게 수행하도록 하기에 요즘 OS에 많이 사용되고 있다.
로컬 버퍼
device controller에는 장치로부터 들어오고 나가는 데이터를 임시 저장하기 위한 작은 메모리가 있다. disk나 keyboard에서 데이터를 읽어올 때, controller가 로컬 버퍼에 데이터를 임시 저장한다. 그 후 메모리에 전달된다. 해서 device controller는 CPU에서 내린 명령들 + 로컬 버퍼로 구성되어 있다고 볼 수 있다.
목적 파일 / 실행 파일
팀원들이랑 파트를 분배하여 서로에게 강의해 주었던 내용을 적어보았다. 옆자리에서 서로 알려주는 것과는 또 다른 느낌이었고, 서로 공부하고 알려주는 내용들이 합쳐져 더 깊이 이해되는 부분도 있고, 잘 알려주기 위해서 각 잡고 딥하게 공부하게 되는 모습도 생겨서 효율적인 공부 방법으로 느껴졌다.