분류 전체보기 532

[네트워크] IP

* basic - network of networks : 네트워크들의 네트워크 - 네트워크와 네트워크를 연결해주는 장치 : router(라우터) * IP - 네트워크 위치를 알기 위한 주소 값 - Network ID(Net id) + Interface id(host id) - 32bit로 이루어져 있고, 8bit씩 나눠서 표현을 한다. 이에따라(Net id의 길이에 따라) 3가지 유형이 존재한다. ⓐ class A = Net id(8) + Host id(24) ⓑ class B = Net id(16) + Host id(16) ⓒ class C = Net id(24) + Host id(8) ※ 현재는 유형이 존재하지 않고 CIDR방식으로 나타내준다. > ***.***.***.*** / x : net id ..

[소프트웨어공학론] 요구 공학(Requirements Engineering) Part 2

* 요구사항 명세서 작성시 중요한 것 ⓐ Natural language specification - 자연언어의 문장과 모호함을 줄이기 위한 그림(다이어그램), 표(테이블)로 이뤄져있다. - standard format을 만들어서 요구사항을 쓰는 형식이다. - 어체는 ~해야한다. ~해야만 한다. ~할 수 있다. 등의 어체로 실현가능성을 나눠서 작성하는 것이 일반적이다. - 글을 읽었을때 컴퓨터공학과 사람이 작성한 것이라는 생각이 안들 도록 해야한다. - 왜 이 소프트웨어가 필요한지 포함 시켜야 한다. - 자연언어의 문제점 > 명확성이 떨어지며, 애매하고 불확실하다. 또한 여러가지 개념이 뭉쳐져서 나타난다. ⓑ Structured specification - 어느 정도 형식을 갖추어서 기술을 한다. > 표 ..

[OS] Threads

* Threads - process를 만드는 것과 같이 여러개의 실행을 동시실행 하기 위한 방법 (근본적으로 process를 만드는 것과는 다르다.) - 즉, 어떤 에플리케이션에서 여러개의 나눠진 Thread를 이용해 Multiple task를 구현하고 있다. - 프로세스를 생성하는 것과 다르게 가볍다.(코드가 단순해지고 효율이 증가한다) > 메모리 사용이 적고, Thread간 데이터를 주고 받는 것도 쉽다. - 일반적으로 kernel은 multi-threaded방식을 사용한다. ※ 그림 중요!! * Thread 사용으로 얻는 이득 - 반응성이 빨라진다. (데이터에 access하거나 정보 교환이 편하다) - 쉽게 자원을 공유 할 수 있다. (같은 주소 공간을 사용한다) - 경제적이다.(빠르다. 손쉽게 할..

[OS] Process Creation and process communication

* Process Creation - 일반적으로 프로젝트를 분류하고, 관리하기 위해서는 process identifier(PID)가 사용된다. - Resource sharing에 대한 선택지 > 부모와 자식은 resource를 모두 공유한다. > 자식은 부모의 resource를 일부 공유한다. > 부모와 자식은 resource공유를 하지 않는다. - Execution > 부모와 자식은 동시에 실행한다. > 부모는 자식이 죽을 때까지 wait상태로 대기한다. - process creation은 자신을 복제한 후 기능을 추가하는 것이다. * Process Creation in UNIX - fork : 새로운 프로세스를 만드는 system call - exec : 복제가 완료된 후에 메모리 내용을 변경하여 다..

[소프트웨어공학론] 요구 공학(Requirements Engineering)

* 요구공학(Requirements Engineering) - 어떤 시스템에서 필요한 서비스(기능)과 제약사항(비기능)을 정의하는 학문 - 요구사항의 기술 방법은 높은 단계의 추상화부터 수학적 기능 명세까지 다양하게 표현이 가능하다. - 요구사항의 종류는 2가지가 있으며 2가지가 하는 일이 다르기 때문에 2종류 모두 작성해준다. ⓐ User requirements - 계약을 성립시키기 위한 요구사항 - 사용자의 요구사항이며, 이를 자연언어와 다이어그램, 표 등을 사용해서 표시한다. - 사용자, 고객을 위해서 작성된 요구사항이며, Client manager, System end-users, Client engineers Contractor managers, System Architects등이 읽는다. ⓑ ..

[OS] Schedulers & Context switch

* Schedulers - Scheduler : 프로세스 상태의 변화를 결정하는 것 * Long-term scheduler and Short-term scheduler - Disk와 메모리사이에 존재하는 long-term scheduler와 메모리와 CPU사이에 존재하는 short-term scheduler가 존재한다. ⓐ Long-term scheduler - Disk에 있는 Job을 언제 메모리 큐로 보낼 것인가를 결정하는 스케쥴러 - Job scheduler라고도 부른다. - Process가 종료되면(Memory 여유가 생길 때) Job을 불러들인다. - 몇초 또는 몇분에 한번씩 발생한다. - 느린 편이다. ⓑ Short-term scheduler - Memory에 있는 것을 언제 CPU로 보낼 것..

[네트워크] RTT & Switching

* RTT - Round Trip Time : 데이터 신호의 왕복시간. - RTT가 너무 짧으면 Timeout이 자주 발생하게 된다. - RTT가 너무 길면 재전송이 늦게 일어 날 수 있다. - 위 두가지 경우에 의해 적당한 RTT 선정이 중요하다. > RTT선정을 하기 위해서는 각각마다 비중을 두어 평균을 측정한다.(가중 평균치) - 여기서 더나아가 편차를 고려하면 더욱 정확한 RTT를 적용할 수 있다. * Switching(교환) - 교환망 : Computer(terminal, host, node ...)를 연결하는 중간채 ⓐ Full mesh망 - 하나의 노드에 대해서 다른 모든 노드에 연결하는 법. 비용적 문제에 의해 불가능하다. ⓑ Switch망 - 중간에 switch(교환망)을 두고 구성된 망..

[하드웨어] Finite State Machine

* Finite State Machine(FSM) - State register와 2개의 Combinational logic으로 이루어져 있다. > State register : 현재의 상태를 저장하고, 다음 상태를 불러온다. > Combinational logic : 다음 상태를 계산하고, 출력을 계산한다. : input을 이용해 next state 계산 // current state를 이용하여 output 계산 - Input과 Output과 state는 별개의 것이다. - 다음 상태는 현재상태와 입력들에 의해서 결정되며, 두 가지 형태의 FSM이 존재한다. ⓐ Moore FSM : 오직 현재의 상태에만 의존하여 결과 값이 도출된다. ⓑ Mealy FSM : 현재의 결과값과 입력값의 조합으로 결과 값이..

[소프트웨어공학론] Risk Management

* Risk Management - Risk : 원하지 않은 현상이 발생한 것 - 리스크를 미리 식별하고, 위험에 의해서 발생하는 영향력을 최소화하기 위한 관리기법 - Risk category ⓐ Project risks : schedule or resources / 일정 또는 자원 상의 위험성 ex) 사원이 일을 그만 두거나 이직, PM의 교체 ⓑ Product risks : Quality or Performance / 품질 또는 성능 상의 위험성 ex) 툴의 기능이 생각보다 적을 경우 ⓒ Business risks : 조직에서의 커다란 변화 및 사회의 흐름 변화 ex) 기술의 변화 - Risk management process ⓐ Risk identification : 리스크 식별 ⓑ Risk ana..

[소프트웨어공학론] Project Planning part2

* Milestones and deliverables - Milestones : 프로젝트 수행간 기억할 만한 날 - Deliverables : Milestones의 결과물로 고객에게 전달되는 결과물 * Project scheduling (프로젝트 일정) - 프로젝트 일정은 Task단위로 분할하여 계획한다.) > Task는 1~2주 안에 끝낼수 있어야 할 분량이어야 한다. > Task간의 의존관계는 적어야한다.(Minimize task dependencies) > Concurrently하게 일이 진행(동시 실행)하게 해야 한다. - Task단위로 언제 어떻게 할 것인지를 정한다. > 각 Task의 종료일, 작업량, 인력 할당 및 수행에 필요한 자원을 식별한다. - Project scheduling을 하는 ..