CS/OS & 하드웨어
동적테스트 화이트박스 테스트 검증기준 (WhiteBox Test Coverage)
1) 문장 검증 기준 (Statement Coverage)문장 1회모든 문장이 한 번 실행된다. 2) 분기 검증 기준 (Decision Coverage)T/F분기점은 조건문에서의 각 분기 또는 논리적 분기 지점을 나타내고, 각 분기는 프로그램의 특정 경로를 나타내며, 조건문의 참/거짓에 따라 결정된다.모든 코드 분기가 테스트 되었을 때 100%의 분기 커버리지가 달성된다. 3) 조건 검증 기준 (Condition Coverage)TF, FT각 조건이 참과 거짓으로 평가되는 모든 가능한 경우를 테스트한다.각 조건이 최소한 한 번은 참으로, 한 번은 거짓으로 평가되도록 한다. 4) 분기/조건 기준 (Condtion Decision Coverage)TT, FF프로그램의 모든 분기점이 최소한 한 번 실행되었는지..
CPU 스케줄링 /SJF SRT
프로세스 작업 수행을 위해 언제, 어느 프로세스에 CPU를 할당할 것인지 결정하는 작업기법 종류스케줄러 동작 시점, Time Slice, 프로세스 생성/소멸 시, 프로세스 Block 상태 변경 시스케줄러가 운영체제에 많이 관여-선점, 적게 관여-비선점SJF (Shortest Job First), SRT (Shortest Remaining Time)SJF (Shortest Job First)- 비선점 방식 (non - preemptive)- 대기 작업 중 수행 시간이 짧게 판정된 작업 수행- 짧은 작업 먼저 수행이 오버헤드 측면에서 유리 문제점)- 작업 수행 시간을 사전에 정확히 판정 어려움 SRT (Shortest Remaining Time)- 선점 방식 (preemptive)- SJF 기법에 선점방식을..
CPU 스케줄링 (Scheduling) 개념
단계프로세스 스케줄링은 수행 단계의 따라 장기, 중기, 단기 스케줄링의 세 가지로 나뉘는데 이것은 스케줄링이 요구되는 시점을 기준으로 구분한다. 장기 스케줄링어느 작업을 커널에 등록시켜 프로세스로 만들어 줄 것인가를 결정하는 것으로 작업 스케줄링(Job Scheduling)이라고도 한다. 이 단계는 요청된 일을 프로세스로 만들어 시스템에 알려진 일거리로 추가하느냐를 결정하는 것으로 다중 프로그래밍의 정도를 조절하는 역할을 한다. 중기 스케줄링보류 상태의 프로세스들 중에서 어느 프로세스에게 메모리를 할당해 줄 것인가를 결정한다. 단기 스케줄링준비 상태에 있는 프로세스들 중에서 어느 프로세스에게 CPU를 할당할지를 결정하는 단계이다. 프로세스 스케줄러 또는 디스패처(Dispatcher)라 불리는 것에 의해..
논리게이트의 종류(AND, OR, NOT, NAND, NOR, XOR, XNOR)
논리게이트는 디지털 회로를 만드는데 있어서 가장 기본적인 요소인데 대부분의 논리게이트는 두 개의 입력과 한 개의 출력 가지게 된다.AND 게이트논리곱이라고 부르며 두 개의 입력이 서로 1일 때만 출력이 발생한다, 둘 중 하나라도 0이면 출력은 0이다.OR 게이트논리합이라고 부르며 두 개의 입력 중 하나가 1이면 출력은 1이고, 모두 0일 땐 0이다NOT 게이트반전 게이트다, 1이 입력되면 0이, 0이 입력되면 1이 출력된다BUFFER 게이트입력이 그대로 출력이 되는 게이트다, 입력과 출력의 신호 차이는 없지만, 일종의 시간 지연기능을 갖는다.NAND 게이트NOT 게이트와 AND의 결합이다, 즉 논리곱의 반대가 되는 것이다. 논리곱은 본래 입력 두 개가 모두 1일 때만 출력이 1이 되었는데, 이것은 그와 ..
결합도(Coupling)과 응집도(Cohesion) 순서
결합도 순서 강 > 약 / 내공외제스자내용 -> 공통 -> 외부 -> 제어 -> 스탬프 -> 데이터(자료)Content > Common > External > Control > Stamp > Data Content Coupling (내용 결합도)하나의 모듈이 다른 모듈의 내부 동작을 수정하거나 내부 동작에 의존하는 상태.(내부 자료나 제어 정보를 사용하는 것이다.) 한 모듈이 데이터를 생성하는 방법을 변경하면, 다른 모듈의 변경이 필요하다.(다른 모듈이 로컬 데이터에 접근하는 경우) Common Coupling (공통 결합도)두 개의 모듈이 같은 글로벌 데이터를 공유하는 상태. (전역 변수)공유 자원(변수)을 변경하면 그 자원을 사용하는 모든 모듈의 변경이 필요하다. External Coupling (외..
Virtual Machine (가상 머신이란?)
가상 머신 (VM : Virtual Machine) 이란?- 실재하는 컴퓨터 상에 소프트웨어로 논리적으로 만들어낸 컴퓨터- 하나의 물리 자원 (컴퓨터) 위에 하나의 환경(OS)만 있는 것을 효율화하고자 기상화층을 만들고 그 위에 OS를 새로 설치하는 기법 실제로 있는 컴퓨터 시스템을 여러 명의 사용자가 동시에 사용할 수 있게 하기 위해서. (효율성 ↑) 따라서 하나의 컴퓨터를 여러 명의 사용자가 동시에 사용할 수 있도록 여러 대의 작은 컴퓨터로 분할 사용하거나, 운영체계나 하드웨어 등의 구성을 달리하여 운영하고자 할 때 주로 사용된다.장단점- 사용자는 자신만이 콘솔, 디스크, 프린터 등을 갖춘 온전한 컴퓨터 시스템을 갖고 혼자서 사용하고 있는 것처럼 느끼게 된다.- 1대의 컴퓨터상에서 여러 개의 시스템을..
컴퓨터 시스템
컴퓨터의 기본 구성도하드웨어컴퓨터에서 각종 정보를 입력하여 처리하고 저장하는 동작이 실제 일어나게 해주는 물리적인 실체.컴퓨터의 성능은 하드웨어 의해 결정됨1) 중앙 처리 장치 (cpu)인간의 두뇌에 해당하는 부분으로, 실행과 데이터 처리를 담당프로세서 또는 마이크로프로세서라고도 부름cf) 마이크로프로세서 : CPU를 IC 칩 1개에 집적한 반도체 소재산술 논리 연산 장치(ALU) : 산술 연산, 논리 연산, 보수 연산, shift 연산 수행제어 장치(CU) : 1) 프로그램의 명령어 해독, 2) 명령어 실행에 필요한 제어 신호를 발생, 3) 컴퓨터의 모든 장치를 제어레지스터 : 중앙 처리 장치 내부에 있는 데이터를 일시적으로 보관하는 임시 기억 장치(빠른 access 가능)CPU 내부 버스 : 구성 요..
멀티 프로세싱 vs 멀티 프로그래밍 vs 멀티 태스킹 vs 멀티 스레딩
멀티 프로세싱 (Multi processing)다수의 프로세서가 협력적으로 일을 처리하는 것이다. 프로세서는 CPU나 Microprocessor라는 하드웨어를 의미하며, 프로세스는 실제 메로리에 적재되어 프로세서에 의해 실행되고 있는 프로그램이다. 보통 하나의 프로세서 (CPU)가 하나의 작업을 맡지만 멀티 프로세싱은 다수의 프로세서가 다수의 작업을 함께 처리하는 것이다. 멀티 프로세싱의 장점은 하나의 프로세서가 고장이 나더라도 해당 프로세서가 진행 중인 작업은 다른 프로세서에서 수행하고 있기 때문에 작업이 정지되지 않는다, 또한, 여러 개의 프로세스가 처리되어야 할 때 동일한 데이터를 사용한다면 각 데이터를 각 프로세서에게 할당할 필요 없이 하나의 공간에 데이터를 저장한 후 이를 공유하여 사용하도록 한..
애플리케이션 테스트 종류
V 모델애플리케이션 테스트와 소프트웨어 개발 단계를 연결하여 표현소프트웨어 개발 단계에 따라 단위테스트, 통합테스트, 시스템테스트, 인수테스트각각의 개발 단계에 완성도를 개발자 관점에서 검증하고 사용자 관점에서 확인기존 폭포수 모델에서 확장된 형태를 보이며 어느 단계에서 발생한 오류인지 추적이 가능하고 신뢰성이 높다단위 테스트 (Unit Test)개념코딩이 완료된 직후 소프트웨어 설계의 최소 단위인 모듈 (함수, 프로시저)이나 컴포넌트에 초점을 맞춰 테스트모듈의 기능 수행 여부를 판정하고 내부에 존재하는 논리적인 오류를 검출사용자의 요구사항을 기반으로 한 기능성 테스트를 최우선으로 수행수행 방법1. 명세 기반 테스트목적 및 실행 코드 기반의 블랙박스 테스트를 진행최소 기능 단위로 테스트하기 때문에 일반적..
테스트 기법 (화이트박스 / 블랙박스)
1. 화이트 박스 테스트 (White Box Test)화이트 박스 테스트는 모듈의 원시 코드를 오픈시킨 상태에서 코드의 논리적 모든 경로를 테스트 하는 방법이다.Source Code의 모든 문장을 한 번 이상 수행하여 모듈 안의 작동을 직접 관찰할 수 있다.산출물의 기능별로 적절한 프로그램의 제어 구조에 따라 선택, 반복 등의 부분들을 수행함으로써 논리적 경로를 점검한다.테스트 데이터를 이용해 실제 프로그램을 실행함으로써 오류를 찾는 동적 테스트 (Dynamic Test)에 해당한다.테스트 종류기초 경로 검사 (Basic Path Testing) : 기초 경로는 수행 가능한 모든 경로를 의미하며, Mocabe의 순환 복잡도를 사용하여 선형 독립 경로 수를 결정한 다음 얻어진 각 경로에 대한 테스트 사례를..