Operation System Services OS: 프로그램 실행을 위한 환경과 프로그램 및 사용자에게 서비스를 제공함. 운영체제 서비스 집합 중 하나는 사용자에게 유용한 기능을 제공함. - 사용자 인터페이스(UI) 거의 모든 운영체제에 존재함 (* CLI, GUI, 터치스크린, batch 등 존재) - 프로그램 실행 시스템은 프로그램을 메모리에 로드하고 실행함, 종료시 정상 종료 또는 비정상 종료시 오류표시를 해야함. - I/O 작업 실행중인 프로그램은 파일이나 I/O 장치를 사용하는 I/O 필요 - 파일 시스템 조작 파일과 디렉토리를 읽고 쓰고 생성, 삭제, 검색, 파일 정보 나열, 권한 관리를 해야함 - 통신 컴퓨터 내(공유메모리) 또는 네트워크(패킷)를 통해 컴퓨터 간 정보 교환 가능 - 오류 ..
CS
keywords interrupt, interrupt vector table, interrupt 아키텍처, polling interrupt system, vector interrupt system, Non-maskable interrupt, maskable interrupt, interrupt chaining dynamic random-access-memory, direct memory access, 다중 프로세서 시스템, 비대칭적 다중 처리, 대칭적 다중 처리, 클러스터 시스템 bootstrap - kernel load - demon Multiprogramming(batch system), Multitasking(Time sharing) 컴퓨터 시스템은 4가지 요소로 나뉜다. Hardware - 기본 ..
TCP segment structure A: ACK: 다음에 예상되는 seq number head len: TCP 헤더의 길이 checksum : internet checksum C,E : 혼잡 알림 TCP options : TCP 옵션 RST,SYN,FIN : 연결관리자 seq number : segment seq number : receive window : flow control : TCP sequence numbers, ACKs Sequence numbers - 세그먼트 데이터에서 첫 번째 바이트의 바이트스트림 number Acknowledgements(확인응답) - ACK - 상대방으로부터 예상되는 다음 바이트의 seq number - cumulative ACK (누적) 수신 측에서 순서가 맞지..
Principles of reliable data transfer (신뢰성 있는 데이터 전송의 원칙) 신뢰성 있는 데이터 전송 = reliable data transfer = rdt 신뢰성 없는 채널의 특성(손실, 오염, 재정렬 등)에 따라 신뢰성 있는 transfer protocol의 복잡도가 영향을 받는다. 송신자와 수신자는 서로의 상태를 모르기에 메시지가 수신됐는지 알 수 없다. rdt_send() : 애플리케이션 계층 등 상위 레이어에서 호출됨. 전송할 데이터를 수신 측 상위 레이어에 전달 udt_send() : rdt에서 호출되어 불안정한 채널을 통해 패킷을 수신측에 전송 rdt_rcv() : 수신측 채널에서 패킷이 도착했을 때 호출됨 deliver_data() : rdt에서 호출되어 상위 레이..
UDP: User Datagram Protocol 간소화된(no frills), 최소한의(bare bones) 기능만 제공하는 internet transport protocol best-effort 방식을 사용하기에, 손실 또는 순서가 바뀌는 상황이 발생할 수 있다. connectionless: - UDP sender/receiver 간의 handshaking이 없다. - 각각의 UDP 세그먼트는 다른 세그먼트와 독립적이다. UDP를 왜 사용할까 - 연결 설정이 없음(RTT 지연이 추가되지 않음) - 송신자 및 수신자에 연결 상태가 없어서 간단함 - 헤더 크기가 작음 - 혼잡 제어(congestion control)이 없음 - * 빠르게 전송 가능하고, 혼잡이 발생해도 동작할 수 있다. 신뢰성이 필요한 ..
multiplexing at sender : 여러 소켓으로부터 데이터를 받고, 전송 헤더를 추가함. demultiplexing at receiver : 헤더 정보를 사용해서 수신된 세그먼트를 올바른 소켓에 전달함. demultiplexing 호스트는 IP 데이터그램을 receive한다. - 각 데이터그램은 송신지(source) IP주소와 목적지(destination) IP주소를 가진다. - 각 데이터그램은 한 개의 전송 계층 세그먼트를 전송한다. - 각 세그먼트는 송신지, 목적지 포트번호를 가진다. 호스트는 IP주소와 포트번호를 사용해서 세그먼트를 적절한 소켓으로 전달한다. receiving host가 UDP segment를 수신하면, 세그먼트의 목적지 포트 번호를 확인하고 해당 포트 번호를 갖는 소켓으..
Transport-layer services and protocols 서로 다른 호스트에서 실행중인 애플리케이션 프로세스간에 논리적인 통신(logical communication)을 제공 transport protocols은 end system에서 실행된다. - sender : 애플리케이션 메시지를 세그먼트로 분할해서 네트워크 계층에 전달 - receiver : 세그먼트를 메시지로 재조립해서 애플리케이션 계층에 전달 인터넷 애플리케이션에서 사용가능한 transport protocols : TCP / UDP network layer는 호스트 간의 논리적인 통신임에 반해 transport layer는 프로세스 간의 논리적인 통신이다. network layer service에 의존하고 이를 향상시킨다. sen..
Multimedia: video video : 일정한 속도로 표시되는 image sequence digital image : array of pixels, 각각의 픽셀은 비트로 표시됨 coding: 이미지를 인코딩하는데 사용되는 비트 수를 감소시키기 위해 이미지 내부 및 이미지 간 중복성 활용함 - spatial(공간적, 이미지 내부에서) - temporal(시간적, 한 이미지에서 다음으로) CBR(constant bit rate): 비디오 인코딩 속도를 고정시킨다. VBR(variable bit rate): 공간적 및 시간적 코딩 양에 따라 비디오 인코딩 속도가 변경된다. Streaming stored video 서버-클라이언트 대역폭(bandwidth)은 네트워크 혼잡 수준(network conges..