분류 전체보기 62

프로세스 간 통신

프로세스 간 통신(IPC)- 프로세스 간 데이터 송, 수신을 의미 -> 즉 메모리 공유- 대표적 기법으로 메일슬롯 존재  메일 슬롯- 단방향 통신 : 두 프로세스간 메시지 전달을 위해서는 두 개의 메일슬롯을 생성해야함- 브로드캐스트 가능 : 여러 Sender가 하나의 Reciever에게 데이터 전달 가능   커널 오브젝트의 Non-signaled, Signaled 상태- 프로세스가 실행중이면 Non-signaled, 신호를 받지 않는 상태- 프로세스가 종료되면 Signaled, 신호를 받는 상태- 종료된 프로세스를 살릴 수 없듯이, Signaled상태가 되면 절대 Non-signaled로 돌아갈 수 없음   핸들과 핸들 테이블- 핸들 테이블 : 핸들 정보를 저장하고 있는 테이블로, 프로세스별로 독립적(프..

커널 오브젝트와 오브젝트 핸들

커널 오브젝트- 커널에 의해 관리되는 리소스 정보를 담고 있는 데이터 블록(프로세스 상태정보 등)- 프로그래머가 직접적으로 생성하거나 조작할 수 없음- 프로세스 관리를 위해 운영체제 내부에 저장됨  핸들- 접근이 차단된 커널 오브젝트에 접근할 수 있는 참조값, 커널 오브젝트에 할당되는 키값 > 간접적 조작 가능- 운영체제는 각 프로세스에 대응하는 핸들 테이블을 할당하고, 이 테이블을 통해 커널 오브젝트에 접근(OS에 요청)  커널 오브젝트와 Usage Count(UC)- UC : 커널오브젝트를 소멸시키기 위해 근거가되는 값- 프로세스의 생성과 동시에 UC는 1- 자식프로세스가 생성되면 UC는 2(생성하며 자식프로세스의 핸들을 얻고, 자식프로세스 자체 참조, 총 2개)- 자식프로세스 종료시 종료코드를 커널..

프로세스의 생성과 소멸

프로세스란- 주 기억장치에 적재되어 현재 실행 중에 있는 프로그램을 프로세스라 함    프로세스의 구성 요소- 프로세스의 범위는 메모리 구조 + 레지스터셋- 메모리 구조는 코드, 데이터, 힙, 스택 영역으로 생성 > 프로세스별로 할당(프로세스가 2개면 이 메모리 구조도 2개가 할당)- 레지스터셋들은 현재 실행중에 있는 프로세스의 실행에 필요한 데이터들로 채워지며, 이는 컨텍스트 스위칭으로 프로세스별로 교체된다.   프로세스 스케줄러- 스케줄러는 둘 이상의 프로세스가 적절히 실행되도록 컨트롤- 스케줄링 방법은 스케줄링 알고리즘에 따라 다양함- S에서 Ready로 프로세스 생성- ready에서 running : 스케줄링- running에서 ready : 우선순위에 의해 밀려날 때- running에서 bloc..

컴퓨터 구조 2

컴퓨터 디자인을 한다면레지스터 디자인- 레지스터는 몇 비트로 구성할 것인가?- 몇 개 정도로 레지스터를 구성할 것인가?- 레지스터 각각을 무슨 용도로 사용할 것인가?명령어 디자인- 명령어의 기본 모델은 16비트 명령어- 2bit : 예약- 3bit : 연산자- 3bit : 저장소(store)- 4bit : 피연산자 1- 4bit : 피연산자 2 LOAD, STORE 명령어의 필요성과 디자인- 사칙연산의 피 연산자는 숫자 or 레지스터이며 연산 결과는 레지스터에 저장됨- 즉 레지스터를 통해 모든 연산을 진행하겠다는데서 착안LOAD 명령어- LOAD r1, 0x20(메모리 주소) > r1에 0x20의 값을 로드STORE 명령어- STORE r1, 0x20(메모리 주소) > 0x30에 r1의 값을 저장  Di..

64비트 기반 프로그래밍

32비트 64비트 시스템의 구분 방법한번에 송수신 할 수 있는 데이터의 크기한번에 처리할 수 있는 데이터의 크기 프로그래머 입장에서의 64비트 시스템- Windows에서는 32비트에서 64비트로 갈 때, 기존 32비트의 호환성을 중시- 프로그램으로 표현할 수 있는 범위가 증가 > 표현할 수 있는 메모리 크기 증가(32비트는 4GB 제한)- 활용 가능 메모리의 확장으로 동적할당이 자유로움- 32비트 포인터가 64비트 포인터로 변경  프로그램 구현 관점에서의 64비트 시스템- 64비트 기반 프로그래밍은 64비트 시스템을 고려한 프로그래밍으로 자료형에 대해 생각해야한다.\- 32비트 시스템과의 호환성을 중시한 모델은 LLP64, LP64가 있다OS모델charshortintlong포인터WindowsLLP641B..

아스키코드와 유니코드

문자셋(Character Sets)의 종류와 특성SBCS(Single Byte Chracter Set)- 문자를 표현하는데 1바이트를 사용- ASCII CodeMBCS(Multi Byte Character Set)- 한글은 2바이트, 영문은 1바이트를 사용WBCS(Wide Byte Character Set)- 문자를 표현하는데 2바이트 사용- UNICODE   WBCS 기반 프로그래밍 방법사용방법- char를 대신하는 wchar_t- wprintf, wscanf, fgetws, fputws 등- 문자열 " "앞에 L 삽입 -> L" " (ex. wchar_t[] = L"Hello, world!";  매개변수 전달인자 유니코드화- C:\> test.exe AAA BBB -> int main(int argc..

컴퓨터 구조

컴퓨터 시스템의 주요 구성 요소컴퓨터 구조- CPU, 캐시운영체제- 메인 메모리 -> 메모리 관리 기법- 하드디스크 -> 파일 I/O(다양한 I/O 포함) - 명령어의 내용대로 연산을 하는 주 요소는 ALU이지만, 명령어를 해석해서 해야 할 일을 결정하는 요소는 컨트롤 유닛이다- 컴퓨터 내부의 각종 요소들은 클럭 신호(Clock Pulse)에 의해 동기화됨    프로그램 실행 과정- 전처리기 > 컴파일러 > 어셈블러 > 링커전처리기- C, C++ 에서 #으로 시작하는 지시문, 지시자로 전처리기가 치환함컴파일러에 의한 번역- CPU의 명령어로 번역어셈블러에 의한 바이너리 코드 생성- CPU의 명령어를 바이너리 코드로 번역링커에 의한 연결과 결합- 라이브러리와 결합 프로그램 내장 방식(Stored Progr..

쉽게 배우는 소프트웨어 공학 연습문제 2장

01. LOC기법에 의해 예측된 총 라인 수가 5만 라인, 프로그래머 월 평균 생산성이 200라인, 개발에 참여할 프로그래머가 10명일 때 개발 소요 기간은? 11. 25개월2. 50개월3. 200개월4. 2000개월 02. COCOMO 모델 중 기관 내부에서 개발된 중소 규모의 소프트웨어로 일괄 자료 처리나 과학 기술 계산용, 비즈니스 자료 처리용으로 5만 라인 이하의 소프트웨어를 개발하는 유형은? 21. embedded2. organic3. semi-detached4. semi-embedded 03. COCOMO 모델의 프로젝트 유형으로 거리가 먼 것은? 41. Organic2. Semi-detached3. Embedded4. Sequential 04. 비용 예측을 위한 기능 점수 방법에 대한 설명 ..

카테고리 없음 2024.10.17

소프트웨어 개발 계획

계획- 계획을 제대로 세우지 않은 소프트웨어 개발은 일정 지연, 품질 저하의 결과를 낳게 됨- 소프트웨어 개발의 성패는 비용, 기간, 인력과 같은 자원을 토대로 초기에 얼마나 계획을 잘 세우느냐에 달림  문제 정의- 문제를 잘 정의하려면 개발하고자 하는 영역의 배경지식이 필요- 유사한 프로젝트 경험이 있는 분석가가 참여하는게 도움이 됨- 문제를 파악하기 위해서는 현재 운영중인 시스템을 이용해 실무 담당자와 면담해 자료를 수집한 후 면밀한 분석이 필요  타당성 분석경제적 타당성- 경영자 입장에서 의사결정을 하는데 매우 중요한 요소- 시장 분석을 통해 시장성 확인- 경제적 타당성 분석으로 투자 효율성, 시장성을 검증한 후 개발 여부를 판단기술적 타당성- 사용자가 요구하는 프로젝트가 최신 기술이 필요하다면, ..

카테고리 없음 2024.10.17

쉽게 배우는 소프트웨어 공학 연습문제 1장

01. 소프트웨어 공학의 기본 원칙이라고 볼 수 없는 것은? 41. 품질 높은 소프트웨어 상품 개발2. 지속적인 검증 시행3. 결과에 대한 명확한 기록 유지4. 최대한 많은 인력 투입 02. 다음 설명에 해당하는 소프트웨어 개발 프로세스 방법은? 4설계가 변경되어도 이를 잘 수용할 수 있도록 짧게 반복하면서 소프트웨어를 개발하는 방법반복적이고 친화적인 프로세스와 유사하지만 경험의 축적으로 나온 모델소프트웨어 개발이 인력 집약적이라는 데 관심을 두고 사람과 팀 구성에 초점을 맞춤1. RAD 모델(Rapid Application Development Model)2. 반복/점증 모델(Iterative/Incremental Model)3. 나선형 모델(Spiral Model)4. 애자일 프로세스 모델(Agile..

카테고리 없음 2024.10.17