지인들과 CS(네트워크, 운영체제, 자료구조)에다가 FE 파트에 대해서 스터디를 시작했습니다. 생각보다 지난주에 여러 일정이 많았어서 집중을 온전히 많이 못했었는데, 스터디를 하니까 그게 확실히 들어났던...것 같다.(열심히 봐야 할듯)
그래서 간단하게 스터디 했던 내용들을 정리해보려고 한다. 물론 각각 따로 정리를 해야 될 것 같지만서도...
운영체제
Q-1: 운영체제란?
A: 하드웨어 위에서 사용자와 연결해주는 인터페이스 역할을 해주는 소프트웨어, 사용자가 편하게 사용하기 위한 환경을 제공해주는 동시에 효율적으로 컴퓨터 리소스를 활용할 수 있도록 도와준다. 그리고 메모리 관리와 파일 시스템 관리를 담당하고 있다.
Q-2: CPU 스케줄링?
A: 현대의 운영체제는 time sharing 방식으로 운영되어지고 있어서, 프로세스들을 적절한 시간을 분배해서 동작하도록 하여야 합니다. 그래서 CPU가 최대한 많은 효율을 낼 수 있도록 하는 알고리즘을 적용해주고 있다.
Q-2-1 : 사용하는 알고리즘의 종류
A: FIFO, SJF, RR, Multi Queue Level 등의 방식이 있고, 현대적인 스케줄링 방식에는 RR로 작동을 한다.. (이 부분은 개인적으로 정리를 더 추가해야 될 것 같고, 현대적인 스케줄링 방식이라고 얘기를 나눴었는데, 같은 우선 순위인 경우에가 맞는 거 같기도 하고, 이런 걸 보면 내용에 대해서 확실하게 모른다는 게 티가 나는 것 같다.)
Q-3 : 다중 사용자 vs 단일 사용자
A: 수업 중에는 못들었던 내용이었어서 추가적으로 찾아보고 간단하게 적자면 단일 사용자 시스템은 하나의 컴퓨터에 한명의 사용자만 액세스 할 수 있는 시스템, 다중 사용자 시스템은 하나의 컴퓨터에 다중 사용자가 액세스 할 수 있는 시스템이라고 한다. 컴퓨터학개론을 듣게 되면 여러 컴퓨터의 종류(발전 과정..?)에 대해서 배우게 되는데 다중 사용자가 컴개론에서 배웠던 내용 중에 서버, 슈퍼 컴퓨터와 같은 부분에 해당한다고 보면 될것 같다.
OSI 7 Layer
Q. 7계층에 대해서 설명해주세요
A:
- Application-presentation-session-transport-network-link-physical
- application : 실제 사용자에게 인터페이스를 제공하는
- presentation : 데이터의 암호화나 압축화와 같이 데이터의 독립성을 유지
- session :응용 프로그램 간의 대화를 유지하기 위한 구조를 제공하고, 이를 처리하기 위해 프로세스들의 논리적인 연결을 담당, 통신 중 연결이 끊어지지 않도록 유지시켜주는 역할 수행하기 위해 TCP/IP 세션 연결의 설정과 해제, 세션 메세지 전송 등의 기능을 수행한다.
- physical : 0과 1로 이뤄진 데이터를 전기 신호로 전달, 인코딩, 디코딩 하는 계층
- Data Link Layer → 해당 디바이스가 속한 Lan 영역에서 Mac 주소를 통해서 통신을 하는 구간으로 switch와 같은 장비가 사용되어 질 수 있음.
- Network : 라우팅 작업을 통해서 데이터를 안전하고 빠르게 전달 보내는 계층
- Transport : TCP나 UDP 프로토콜을 사용해서 데이터를 보내고자 하는 사용자에게 데이터를 보내려 하고, 목적지를 확인하기 위해서 port 번호를 확인하고 보내고 있습니다.
Q. 7계층으로 나눈 이유
A:
- 계층 마다 하는 일을 구분해서 통신과정을 효율적으로 관리하고 문제가 생겼을 때 탐색 범위를 좁히기 위함이라고 생각함.
- 논리적인 개념을 정리해서 유사한 기능, 역할들에 대해서 정리를 해서 추상화를 하고 이를 계층 단위로 나눠 정리해서 계층화라고 함. 이를 통해서 통신과정을 구분해서 관리할 수 있고, 문제가 생겼을 때 효율적으로 관리를 할 수가 있다.
- 라우터 간의 통신 알고리즘
- 갈 수 있는 라우터 들에 대해서 계속해서 데이터를 갱신해나가고 그 데이터를 바탕으로 최단 거리로 가는 방식을 찾음
Q: TCP?
A:
- 연결성을 지향하는 신뢰성을 가진 데이터 프로토콜, 흐름제어나 혼잡제어에 대한 기능을 제공함.
- 흐름제어 : 수신 쪽 데이터 받는 속도와 송신 쪽 데이터 보내는 속도를 맞춰주는 것 → 만약에 속도가 차이난다면 데이터 Loss와 재전송에 대한 비용이 올라가게 됨.
- 혼잡제어 : 네트워크 상에 데이터 흐름 속도를 보고 송신 쪽에서 데이터 보내는 속도를 조절 하는 것.
일단 주요한 내용은 이 정도였고, 시스템콜과 인터럽트에 대한 부분도 추가 작성하는 걸로