CourseWork 53

[운영체제/OS] L17. CPU Scheduling (1)

CPU Scheduling Goals CPU scheduler must decide: 프로세스 실행 시간 프로세스들이 실행될 순서 User-oriented schdeuling policy goals : 유저관점에서 스케쥴링의 평가(기준) 평균 반응시간 (프로세스 실행시키고 첫번째반응이 일어날 때까지 걸리는 시간)을 최소화한다. 반면 interactive한 유저가 적절한 응답을 받는 수를 최대화한다. trunaround time(프로세스 시작 ~ 종료까지, execution time + waiting time) 최소화함 평균 응답 시간의 편차 최소화 예측가능성은 중요함 .. 프로세스는 어떤 시스템에 load 되었는지 상관없이 항상 (대략적으로) 같은 시간동안 실행되어야한다. System-oriented s..

[컴퓨터 네트워크] Chapter4. Network Layer (1)

Intro Application Layer, Transport Layer을 배우고나서 Network Layer까지 왔다 ! 이 챕터에서는 네트워크 서비스에 있는 원리들을 배울 것이다. 바로 data plane과 control plane: - 네트워크 레이어와 서비스모델 - 포워딩 (forwardong) vs 라우팅(routing) - router가 작동하는 방법 - Generalized forwarding - SDN controllers - Internet Control Message Protocol(ICMP) - 네트워크 관리 Instantitaion, implementation in the Internet : 인터넷에서의 구현, 실체화 Network Layer : 네트워크 계층 -sending hos..

[컴퓨터 네트워크] 3.4 (1) principles of reliable data transfer

Transport layer에서 가장 중요한 역할은 end-to-end 통신의 신뢰성을 확보하는 것이다. 그럼 데이터를 어떻게 reliable하게 보낼까 ?에 관한 고민이 담긴 것이 바로 이 챕터이다. 3.4는 아주아주 .. 방대하고 ... 어렵고 양이 많은 챕터이다 (학생인 나는 죽어난다 ㅜㅜ ~ ) 조금 더 자세하지만 이해하기 쉽게 천천히 다루어보겠다 ! 1. principles of reliable data transfer application layer입장에서는 보내기만 하면 reliable이 보장 된다고 생각한다. → transport layer에서는 reliable을 보장해주어야한다. (3장 포스팅마다 쓰는 것 같다 .. ) 신뢰성있는 데이터 전송 프로토콜을 구현할 때, 통신 채널의 신뢰성 여..

[소프트웨어공학] Chapter 3. 소프트웨어 프로세스

거의 다 적었었는데 내용이 날라갔습니다.. 이번 포스팅 길다 생각했는데 이게 날라갈 줄이야 ~ 더 잘 적으라는 뜻으로 알고 다시 공부해서 적어봅니다 .. 。゚(゚´ω`゚)゚。 우리는 이전까지 소프트웨어 개발 과정에 있어서 5가지 접근 단계를 알아보았고 그 중 특히나 '프로세스 단계'에 대해서 자세히 알아보았다! 프로세스 중에서도 프레임워크 활동 ' 대화 - 계획 - 모델링 - 구현 - 설치 '과정에 대해서 알아보았는데 ... 과연 모든 프로세스가 이 과정을 순서대로 따라만할까? 이 물음에 대한 해답을 찾아보자 ! 그러기 위해서는 프로세스 모델이 등장한다. 프로세스가 돌아가는 다양한 방식에 대한 모델이 존재한다는 것이다. 프로세스 모델 프로세스 모델은 각 요소들을 서로 연결하여 일련의 소프트웨어 개발 프..

[소프트웨어공학] Chapter 6. 요구사항 개념

요구공학 요구공학이란 문제의 요구사항들을 이해하는 것 소프트웨어 엔지니어가 직면한 더 어려운 문제 RE: Requirement engineering → 커뮤니케이션 활동으로부터 모델링 활동까지 → 디자인과 구현을 이어주는 다리 요구공학의 Task ✅ customer가 무엇을 원하는지 ✅ needs를 분석 ✅ feasibility(실행할 수 있음)을 평가 ✅ 합리적인 접근법을 중재 ✅ 문제를 정확하게 명시화 ( → 모델링 ! ) ✅ specification 유효성 검증 ✅ 요구사항이 제대로 반영되어서 구현되었는지 관리 요구공학 단계 Inception(착수) - Elicitation(추출) - Elaboration(상세) - Negotiation(협상) - Specification(명세) - Validati..

[소프트웨어공학] Chapter2-2. 소프트웨어 공학 개요(2)

chapter 2에서는 소프트웨어공학에 관해 다룬다. 즉, 우리가 3,4 .. 장에서 차차 배워갈 내용을 쭉 다룬다. 소프트웨어의 정의와 역할과 진화 그리고 이 소프트웨어의 문제점, 응용분야를 다루어봤고 이번 포스팅에서는 소프트웨어공학을 단계별로 접근하는 방식에 관해 배운다. 우선 소프트웨어 공학의 정의부터 다시 상기시켜보자 ! 소프트웨어 공학, Software enginerring 소프트웨어 공학이란 신뢰성있고 실제 기계에서 효율적으로 작동하는 소프트웨어를 경제적으로 구현하고 사용하기 위해 건전한 공학 원칙을 수립하고 적용하는 것을 의미한다. 이 때 공학 원칙이란 앞서 말한 오류가 없고 효율적이라는 뜻을 내포하고 있다. 1) 소프트웨어 개발, 운영 및 유지보수에 체계적이고 집중된, 측정 가능한 방법론을..

[운영체제/OS] 2. OS의 역사

운영체제가 어떻게 개발되었고 어떤 문제점을 거쳐 현재의 모습으로 자리 잡았는가에 대한 장이었다. Phase 0 - 하드웨어는 매우 비싼 experiment; 운영체제가 존재하지 않는 단계 1. One user at console : 한명의 콘솔 사용자 - 한 번에 하나의 기능 ( 연산, I/O, 사용자 생각/응답 ) - 카드 덱을 통해 프로그램 로드: I/O 장치 드라이버 라이브러리 - 사용자는 콘솔에서 디버그 수행 Phase 1- 하드웨어는 비싸고 인간은 싸다 2. 간단한 배치 처리 : 프로그램을 로드하고 실행한 후 결과를 출력하고 삭제한 다음 반복한다. - 사용자는 (카드나 테이프로 된) 프로그램을 운영자에게 제공하고 작업을 예약한다. - Resident 모니터가 자동으로 사용자 작업을 로드, 실행,..

[컴퓨터 네트워크] 3.3 connectionless transport : UDP

현재 우리는 Trasnport layer에 대해 알아보고 있다. 3장에서 주구장창 말하겠지만 Transpor tlayer은 ent-to-end 에서 데이터 전송의 신뢰성을 제공한다는 것이다. 소켓을 통하여 신뢰성을 보장하는 계층이다. UDP, TCP 프로토콜을 주로 사용하여 UDP, TCP에 대한 설명을 자세히 해보려한다. 이번 포스팅에서는 연결비지향성 UDP에 대해 배워볼 것이다. 여러번 반복해서 나온 내용이니 빨리 짚고 넘어가보겠다. UDP : User Datagram Protocol [RFC 768] no frills, bare bones Internet transport protocol : 아무런 장식없고 필수적인 것만을 갖춘 프로토콜 best effort 서비스 : ** 네트워크에서 데이터를 전..

[컴퓨터 네트워크] 3.2 multiplexing and demultiplexing

우리는 현재 3장, Transport layer에 대해 배우고 있다. Transport layer의 주 기능은 end-to-end 통신을 제공한다는 것이다. 이 계층은 송신 호스트와 수신 호스트 간의 데이터 전송에 필요한 신뢰성, 효율성 및 보완성을 제공한다. Transport 라는 이름때문에 Network layer와 헷갈리기 쉬운데 데이터를 보낼 곳에 대한 주소를 이용하여 전송에 도움을 주는 것은 Network layer에서 담당하고 Transport layer에서는 데이터 전송에 있어서 사용자의 요청(Message)를 담아 원하는 Socket으로 전송해주고 신뢰성을 부여한다고 생각해보면 좋을 것 같다. 3.1부터 3.4까지는 빠르고 짧게 진도가 나갈 것이다.. 하지만 만약에 이 글을 보고 있는 미래..

[컴퓨터 네트워크] 3.1 Transport-Layer services

1장에선 인터넷을 배우며 5계층에 대해 알아보았고 2장부터는 이 5계층에 대해 한 챕터씩 자세하게 배운다. 2장에서는 application layer에 대해 배웠고 3장에서는 Transport layer에 대해 배운다 ~~ 서로 다른 호스트들은 locgical한 communication을 주고 받는다. 물론 이 communication 과정은 그냥 일어나는 것이 아니다! Transport layer를 통해 소통을 할 수 있다. 이 계층에서는 송신자와 수신자 사이에 연결을 설정하고 데이터 전송을 관리하는 프로토콜을 구현하기 때문이다. 조금 더 쉽게 다가가보자면 사용자의 요청(Message)를 담아 원하는 소켓으로 전송해주는 계층이다. 2장 마지막에서 배웠던 socket programming에 대해서 생각해..