신문



CS 질문

7계층으로 나눠 독립적인 객체들로 구성해 각각의 일을 구분한다.
Physical - 데이터 전송, 수신하는 역할만 수행.
Data link - Mac주소를 통해 통신함. (addressing, framing, flow control, error control, media access control)
Network - 라우터를 통해 IP주소를 지정하고 패킷을 전달함.
Transport - 포트를 통해 통신하여 프로세스간 정보를 교환한다. (TCP - 신뢰, 연결지향적 | UDP - 비신뢰, 비연결, 실시간)
Session - 통신을 위한 논리적 연결을 담당함.
Presentation - 파일을 어떻게 암호화 하는지, 를 담당.
Application - 사용자 인터페이스, 응용 프로세스와 관계되어 일반적인 서비스를 제공

연결 성립 과정 :
클라 x번 패킷 전송,
서버가 y번 패킷 | x + 1번 ACK 전송,
클라가 y + 1번 ACK전송 총 3번의 통신이 필요

연결 해제 과정 :
클라가 FIN 플래그 전송,
서버 FIN 수신 | ACK 전송 (이 떄 모든 데이터를 보내기 위해 close_wait 상태가 됨),
서버 FIN 전송 (데이터 전송이 완료된 경우),
클라가 ACK 전송

하드웨어를 관리, 컴퓨터의 자원을 효율적으로 관리, 응용 프로그램과 하드웨어간의 인터페이스를 제공
CPU 스케줄링을 통해 프로세스의 실행을 관리한다.
메모리 관리 (메인, 버츄얼 메모리)
디바이스 드라이버. (여러 하드웨어를 사용할 수 있도록 인터페이스로 구현된 드라이버들)

프로세스 : 메인 메모리 상에 로딩되어 실행중인 것
쓰레드 : 프로세스 안의 실행 흐름 단위
쓰레드의 경우 stack만 따로 할당됨 (code, data, heap의 경우 공유함)

멀티 프로세스 (여러 CPU로 프로세스들을 동시에 처리)
장점 : 안정성 (메모리 침범 문제 OS차원에서 해결)
단점 : 각각 독립된 메모리 영역 (오버헤드 큼), context switching(이전의 프로세스 상태 저장, 복원의 과정)으로 성능 저하

멀티 쓰레드 (하나의 응용 프로그램을 여러 쓰레드로 구성해 쓰레드들이 하나의 작업 처리)
장점 : 공유 메모리를 사용해 자원, 시간 손실 감소. 전역 | 정적 변수 공유 가능
단점 : 안정성 문제 (공유 메모리 문제 -> critical section 기법으로 대비)



0개의 댓글