분류 전체보기 117

운영체제(OS)란?

운영체제 운영체제란 응용프로그램이 실행되는 과정에서 하드웨어들을 제어하여 응용프로그램을 실행시키고 실행 결과를 보일 수 있도록 컴퓨터 내부 동작을 관리하는 소프트웨어이다. 부팅 부팅이란 컴퓨터 전원을 넣은 후 사람이 컴퓨터를 사용할 수 있도록 준비하는 과정이다. 하드디스크에 저장된 운영체제를 읽어 메인 메모리로 옮기고 실행시키는 작업 운영체제의 특징 여러 프로그램을 같이 실행시키며 서로 충돌없이 실행되도록 프로그램 실행을 제어 컴퓨터 하드웨어와 프로그램 사이의 인터페이스라고도 할 수 있다. 컴퓨터에서 발생할 수 있는 각종 오류나 예외상황을 감지하고 상위 계층에게 보고 컴퓨터 자원의 이용 현황에 대한 통계자료를 제공 프로그램 (OS 위의 계층) 유틸리티(utility) : 시스템 프로그램 (디버거(debu..

컴퓨터 2021.01.28

컴파일러, 인터프리터

한 언어에서 다른 언어로 번역하는 프로그램을 컴파일러라고 부른다. 컴파일러는 무조건 기계어로 번역 할 필요는 없다. 예를들어 자바 -> C언어로 번역하는 번역기도 컴파일러이다. 여기서은 고급언어에서 기계어로 번역하는 컴파일러에 대해 이야기 하겠다. 컴파일러는 우리가 작성한 프로그램을 한꺼번에 기계어로 번역한다. 컴파일러를 실행시키면 보통 번역해야 할 언어의 파일들과 번역 결과를 저장 할 파일의 이름을 받는다. 그리고 그 파일들을 모두 번역해서 하나의 바이너리(또는 어셈블리)파일로 저장한다. 그러면 이후에 사용자가 이 바이너리 파일을 실행시키면 프로그램이 실행되는 것이다. 즉, 컴파일러가 필요한 프로그래밍 언어는 1. 프로그램을 작성한다 2. 컴파일을 한다. 3. 실행을 한다. 이렇게 세가지 과정을 거쳐 ..

컴퓨터 2021.01.27

알고리즘 설계 기법(Algorithm Design Paradigm)

알고리즘은 알고리즘 설계 기법을 기반으로 만들어진다. 퀵정렬과 병합정렬은 구체적인 정렬 방식은 다르지만, 큰 틀에서 정렬 대상 데이터를 둘로 나눠 각각 정렬한 후 그 두 데이터를 연결한다는 점에서 공통점을 가지고 있다. 내용도 다르고 성능도 다르지만 동일한 구조적 기반으로서 알고리즘 설계 기법을 공유하고 있다는 것이다. (퀵정렬과 병합정렬은 '분할정복'이라는 설계 기법을 기반으로 한다) 이처럼 알고리즘 설계기법은 특정 알고리즘이 만들어지는 기반이 된다. 즉, 알고리즘 설계 기법이란 '알고리즘을 어떤 식으로 만들 수 있는가?'에 대한 이야기인 것이다. 알고리즘 설계 기법은 새로운 알고리즘을 만드는데 도움을 준다. 세상에는 훌륭한 알고리즘들이 많이 알려져 있다. 문제를 만나면 그 알고리즘들을 사용해서 해결하..

웹개발 2021.01.26

함수

함수(function)란? - 함수란 영어 function에서 온 말인데 이 뜻은 "기능"을 뜻한다. 즉, 기능을 구현하는 부분을 따로 떼어 구현하는 것으로, 구조화 프로그램의 중요한 개념이라 하겠다. 함수의 종류 함수의 종류에는 사용자 정의 함수와 라이브러리 함수가 있다. ① 사용자 정의 함수 사용자가 구현하고 싶은 기능을 구현하는 것이다. 변수의 경우처럼 명명규칙(언더바_나 알파벳으로 시작 등등..)에 따라 함수의 특성을 살린 이름을 지으면 된다. 예) add(), printScreen(), multiple() ② 라이브러리 함수 우리가 흔히 써오던 printf(), scanf() 같은 함수인데 이 두 함수는 stdio.h파일 안에 정의되어있다. 출처: https://zapiro.tistory.com..

C언어 2021.01.25

인터럽트 우선순위

인터럽트 우선순위 인터럽트 우선 순위전원 공급이 이상 → CPU의 기계적인 오류 → 외부 신호에 의한 인터럽트 → 입출력 전송 요청 및 전송 완료, 전송 오류→ 프로그램 검사 인터럽트 → 슈퍼바이저 호출(SVC 인터럽트) 폴링(Polling) 가장 높은 인터럽트부터 요청 플래그를 검사하여 인터럽트 서브스 루틴을 수행하는 소프트웨적인 방법입니다.하드웨어를 추가할 필요가 없어 회로가 간단합니다.인터럽트를 조사하는 비용이 들어 반응시간이 느립니다.인터럽트 요청한 장치를 차례대로 검사합니다. 데이지 체인(Daisy Chain) 어디에 인터럽트가 발생하였는지 확인하는 회로를 직렬로 연결하는 하드웨어적인 방법입니다.우선순위에 따라 한줄로 연결합니다. 병렬(Parallel) 인터럽트가 발생하였는지 확인하는 회로가 각..

컴퓨터 2021.01.22

불대수 / 부울대수

부울 대수(Boolean algebra) 또는 불 대수는 조지 불(George Boole)이 창안한 논리 대수입니다. 대수(代數)의 사전적 의미는 "숫자 대신에 그 숫자를 대표하는 문자를 써서 수학 법칙을 간명하게 나타내는 수학의 한 분야"로 부울 대수는 논리 문제로 기호로 설명하는 것이라 할 수 있습니다. 부울 대수는 값의 범위가 참(True)과 거짓(False)으로 한정되는 대수의 한 분야로 컴퓨터에서 부울 대수가 기본적으로 언급되는 이유는 바로 컴퓨터의 논리 회로가 1, 0만의 디지털 신호를 다루기 때문입니다. 부울 대수는 회로 뿐만아니라 소프트웨어와도 깊은 연관성을 가지는데 프로그래밍 언어에서 조건을 기술하는 if , for, while 등의 문장에서는 부울 대수와 연관성을 가지는 논리 연산이 수..

웹개발 2021.01.21

DMA

개념메모리 버퍼, 포인터, 카운터를 사용하여 장치 제어기가 CPU의 도움 없이 DMA컨트롤러를 이용하여 데이터를 직접 메모리로 전송하는 입출력 방식 I. CPU의 도움없이 I/O 장치가 직접 메모리에 접근하는 방식, DMA의 개요 가. Direct Memory Access의 정의 메모리 버퍼, 포인터, 카운터를 사용하여 장치 제어기가 CPU의 도움 없이 DMA컨트롤러를 이용하여 데이터를 직접 메모리로 전송하는 입출력 방식 CPU는 상태, 제어정보만을 교환하고 데이터 전송은 I/O와 메모리간에 직접 교환 DMA컨트롤러가 버스를 제어하고 I/O와 메모리가 정보를 직접 전송 중앙처리장치에게 PIO작업을 할당하지 않고 DMA라는 특수 프로세서에게 위임하여 메모리와 직접 데이터 전송할 수 있도록 하는 방법 나. ..

웹개발 2021.01.20

프로그래밍이란?

1. 프로그래밍이란? 프로그래밍이란 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션이다. 이를 위해 먼저 무엇을 실행하기 원하는지에 대한 정의가 필요하다. 다시 말해, 프로그래밍에 앞서 문제(요구사항)를 명확히 이해한 후 적절한 문제 해결 방안의 정의가 필요하다. 이때 요구되는 것이 문제 해결 능력이다. 혹자는 문제 해결 능력을 알고리즘과 동일시하려는 경향이 있지만 반드시 그런 것은 아니다. 물론 문제 해결 능력의 함양에 있어 알고리즘 학습은 큰 도움이 되지만 문제 해결 능력은 더 큰 차원의 능력이다. 대부분의 문제(요구사항)는 복잡하며 명확하지 않을 수도 있다. 따라서 문제(요구사항)를 명확히 이해하는 것이 우선되어야 하며 복잡함을 단순하게 분해(Decomposition)하고 자료를 정리하고 구분(Mod..

C언어 2021.01.18

WebService

WebService란? 웹 서비스(Web Service)는 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용을 하기 위한 소프트웨어 시스템이다. 웹 서비스는 서비스 지향적 분산 컴퓨팅 기술의 일종으로 SOAP, WSDL, UDDI 등의 주요 표준 기술로 이루어진다. 웹 서비스의 모든 메시징에는 주로 XML이 사용된다. ▶ Web Service 주요 구성요소 -SOAP- SOAP (Simple Object Access Protocol) : XML과 HTTP등을 기본으로 하여 다른 컴퓨터에 있는 데이터나 서비스를 호출하기 위한 통신규약(Protocol)이다. SOAP을 지원하는 서버가 대중화가 되면서 대부분의 SOAP 서버들을 웹에서 Access가 가능해졌으며 다양한 프로그램언어에서도 쉽게 실행할 수..

웹개발 2021.01.15