Operation System Services OS: 프로그램 실행을 위한 환경과 프로그램 및 사용자에게 서비스를 제공함. 운영체제 서비스 집합 중 하나는 사용자에게 유용한 기능을 제공함. - 사용자 인터페이스(UI) 거의 모든 운영체제에 존재함 (* CLI, GUI, 터치스크린, batch 등 존재) - 프로그램 실행 시스템은 프로그램을 메모리에 로드하고 실행함, 종료시 정상 종료 또는 비정상 종료시 오류표시를 해야함. - I/O 작업 실행중인 프로그램은 파일이나 I/O 장치를 사용하는 I/O 필요 - 파일 시스템 조작 파일과 디렉토리를 읽고 쓰고 생성, 삭제, 검색, 파일 정보 나열, 권한 관리를 해야함 - 통신 컴퓨터 내(공유메모리) 또는 네트워크(패킷)를 통해 컴퓨터 간 정보 교환 가능 - 오류 ..
학교강의필기장
Keywords user-mode, kernel-mode, Program Counter Caching, Protection, Security Dual-mode and Multimode Operation Dual-mode operation은 운영 체제와 다른 시스템 구성 요소를 보호할 수 있도록 함. User-mode와 Kernel-mode로 구성되고 하드웨어에서 제공하는 Mode bit로 구현됨. 이러한 모드는 시스템이(CPU가) 사용자 코드 또는 커널 코드를 실행 중인지 구별할 수 있는 기능을 제공함. 특정 명령어들은 권한이 주어지고, 커널 모드에서만 실행 가능함. System call은 모드를 커널 모드로 전환하고 호출이 완료되면 다시 사용자 모드로 되돌아감. 즉, 프로세스가 시스템콜을 커널에 요청하..
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..