3학년 2학기 때 운이 좋게 서버 운영진으로써 스터디를 진행하게 되었다.
매 주 스터디마다 많은 양의 서버 워크북 중 뭐를 보는 것을 추천하는지나 꼭 정리하고 넘어갈 점들을 정리해보고자 한다
우리 대학교 기준 3학년 2학기에 운영체제라는 과목을 듣는데, 이를 수강하기 이전에 서버 공부를 시작하면 많이 생소하고 어려울 수 있다. 완벽하게 이해까지는 못해도 워크북에 걸려 있는 정리 블로그를 간단하게 읽어보고 시작해보자.
IP 주소
네트워크 상에서 유일하게 식별이 가능한 값
포트 번호
컴퓨터 프로세스간의 식별 값
Transmission Control Protocol의 약자이고 이 프로토콜은 모두 패킷을 한 컴퓨터에서 다른 컴퓨터로 전달해주는 IP 프로토콜을 기반으로 구현되어 있고 연결 지향적인 특징을 갖고 있다.
운영 체제의 커널이 제공하는 서비스에 대해 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다
사용자 프로그램이 디스크 파일에 접근하거나 화면에 결과를 출력하는 등의 작업이 필요한 경우, 즉 사용자 프로그램이 특권 명령의 수행을 필요로 하는 경우, 운영체제에게 특권 명령의 대행을 요청하는 것이 시스템 콜
인터럽트란?
CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외상황이 발생하여 처리가 필요할 경우에 마이크로프로세서에게 알려 처리할 수 있도록 하는 것
하드웨어 인터럽트는 하드웨어가 발생시키는 인터럽트로 CPU가 아닌 다른 하드웨어 장치가 cpu에 어떤 사실을 알려주거나 cpu서비스를 요청해야 할 경우 발생
소프트웨어 인터럽트랑 구별을 하자!!
소프트웨어 인터럽트란?
소프트웨어(사용자 프로그램)가 발생시키는 인터럽트이다. 종류는 예외 상황이나 system call등이 존재
리눅스에서 모든 요소를 파일로 취급
파일 디스크립터는 socket()의 리턴 값
소켓을 만드는 시스템 콜
생성한 소켓에 실제 IP주소와 포트번호를 부여하는 시스템 콜
OS에게 어떤 소켓에 IP주소와 포트번호를 부여할지 알려주기 위해 파라미터에 소켓의 파일 디스크립터 포함
참고로 클라이언트는 통신 시 포트 번호가 자동으로 부여되기에 bind 시스템 콜은 서버에서만 사용
연결지향인 TCP에서만 사용
파라미터로 파일 디스크립터(소켓)를 클라이언트의 연결 요청을 받아들임
최대로 받아주는 크기를 backlog로 설정
accept 시스템 콜은 backlog queue에서 syn을 보내 대기 중인 요청을 큐로 하나씩 연결에 대한 수립을 해줌
accept System call 이후 이루어진다.
프로세스란 프로그램이 메모리에 올라와 cpu를 할당받고 프로그램이 실행되고 있는 상태. 동적인 개념
멀티 프로세스란?
장점
후기: 챌린저 입장으로 정리를 하지 않고 중요한 것 위주로 정리를 하다 보니 2학년 데이터 통신 때 배운 내용들과 4기 UMC 서버 워크북을 했던 것들에 대한 복습이 됬던 것 같다. 또한, 운영체제 과목을 현재 수강중인데 시스템 콜과 멀티 프로세스 등의 용어들이 나와 익숙했다.