반응형

<개인공부> 261

[운영체제] 유저모드와 커널모드에 대해서.

안녕하세요, BlockDMask입니다.오늘은 운영체제의 유저모드와 커널모드에 대해서 알아보도록 하겠습니다.글로 먼저 설명을 하고, 그림을 통해서 설명하겠습니다.제가 학교에서 수강했던 Unix system programming 수업과 OS 수업에서 배운 내용을 정리했습니다.혹시 내용에 이상한 점이 있으면 댓글로 지적해주시면 감사하겠습니다.1. 커널이란?2. 디바이스 드라이버란?3. 유저모드와 커널모드란.4. 유저모드와 커널모드의 전환.5. 전체적인 흐름. 1. 커널이란? 위키피디아 에서 정의하길 "컴퓨터 과학에서 커널(Kernel)은 운영체제의 핵심 부분으로서, 운영 체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러가시 서비스를 제공한다." 라고 정의 되어있습니다. 제가 말하고 싶은 것은, "운영체제..

[C++] STL 이란.

1) STL 이란표준 C++ 라이브러리 (Standard Template Library)프로그램에 필요한 자료구조와 알고리즘을 Template로 제공하는 라이브러리 2) STL 의 구성요소Container - 객체를 저장하는 객체, 자료구조 라고도 한다. 클래스 템플릿으로 구현되어있다. - container는 크게 sequence container, associative container로 나뉩니다. > Sequence Container 의 종류 : array (C++ 11), vector, list, deque > Associative Container 의 종류 : set, multiset, map, multimap Iterator - 포인터와 비슷한 개념으로 컨테이너의 원소를 가리키고, 가리키는 원소..

[C++] Pair 클래스 정리 및 예제 (vector, sort)

안녕하세요! BlockDMask 입니다.이번에는 C++의 Pair 클래스에 대해 간단히 정리 해보려합니다.클래스사용법, 함수 및 간단한 예제를 준비해봤습니다.감사합니다.1) Pair 클래스란.두 객체를 하나의 객체로 취급 할 수 있게 묶어주는 클래스입니다. STL에서 데이터 "쌍"을 표현할때 사용. 헤더에 존재. 2) Pair 클래스 생김새.template struct pair;template struct pair; T1 : first T2 : second 로 구분합니다.3) 멤버 함수 및 간단한 사용법.pair p 사용할 데이터 타입 1, 2를 넣고 그 타입의 pair 클래스인 p를 만듭니다. p.first : p의 첫번째 인자를 반환해 줍니다. p.second : p의 두번째 인자를 반환해 줍니다. ..

[C언어] 배열포인터, 포인터배열 정리 (pointer)

안녕하세요! BlockDMask 입니다 오늘은 많이들 햇갈려 하는 array pointer pointer array pointer pointer array array pointer. C언어의 포인터 개념과 배열 개념을 조금은 알고 계셔야 내용을 이해할 수 있을 것 입니다. 포인터배열, 배열포인터를 간단하게 정리해보겠습니다. 우리나라말은 끝까지 들어보라고 하지 않씁니까. 뒤에있는게 중요하다는 뜻이죠. 포인터"배열" / 배열"포인터" 시작하겠습니다.이해를 돕기위해 직접 그림도 그렸습니다. 손그림이었는데 이번에 ppt로 바꾸어봤습니다.훨씬 이해하기 편하지 않을까 싶습니다. 1. 포인터 배열이란. 2. 배열 포인터란. 1. 포인터 배열이란 ▶ 포인터 들의 배열이다. 배열의 요소가 포인터들로 이루어져 있다. ▶ ..

[C++] 예외처리 (Exception Handling, try catch)

1) "예외 상황" 과 "예외 처리" 란.예외 상황 : 예외(Exception)는 언어상의 문법적인 오류가 아니라 내가 의도한, 구현한 프로그램의 논리에 맞지 않는 상황을 말합니다. 이러한 예외 상황에서, 특별한 처리를 하는 것을 예외처리(Exception Handling)이라 합니다.ex) 나눗셈을 할때 나누는 수 가 0으로 입력되는 경우를 "예외 상황" 이라 하고, 이에 대해 다시 입력을 받거나 프로그램을 종료하는 방법을 정의해주는 것을 "예외 처리"라고 할 수 있습니다. 2) "예외 처리"를 위한 방법.사실 우리는 조건문(if)를 통해서 이전부터 예외처리를 해왔었습니다. 하지만, C++언어에서 예외 처리를 위해 제공하는 메커니즘이 존재합니다. 조건문(if)를 통해서 예외 처리하는 방법도 좋지만, 이..

[유클리드 알고리즘] GCD 최대공약수 (반복문, 재귀)

안녕하세요. BlockDMask 입니다. 유클리드 알고리즘은 사실 알고리즘 카테고리를 새로 만들어서 작성해야하는데, 조만간에 이사하도록 하겠습니다. 1) "유클리드 알고리즘"이란.유클리드 알고리즘은 주어진 두 수 사이에 존재하는 최대공약수(GCD)를 구하는 알고리즘 입니다. GCD - greatest common divisor 2) "유클리드 알고리즘" 원리.임의의 두 자연수 a, b가 주어졌을때. 둘중 큰 값이 a라고 가정해보겠습니다.a를 b로 나눈 나머지를 n 이라고 하면 (a%b = n)n이 0일때, b가 최대 공약수(GCD)입니다.만약 n이 0이 아니라면, a에 b값을 다시 넣고 n를 b에 대입 한 후 다시 위에 step2부터 반복하면 됩니다.3) "유클리드 알고리즘" 접근방법.두가지 접근 방법이..

[C++] template(템플릿)에 관하여 2 (클래스 템플릿, 템플릿 특수화)

안녕하세요. BlockDMask 입니다.오늘은 C++ template(템플릿)에 관하여 두번째 시간입니다. 클래스 템플레이트와 템플레이트 특수화에 대해서 배울것 입니다.혹시 template이 무엇인지 다시한번 복습이 필요하신분들은. [바로가기] 1) 템플릿 특수화 (template specialization) 템플릿(template)을 사용할때, 특수한 자료형에 대해서는 다른 처리를 하고 싶을때 사용합니다. 사용 방법은 아래처럼 template 가 정의되어있을때, 같은 함수에 대해서, 재정의?하고싶은 데이터 타입을 이용해서 아래 주황 글씨처럼 재정의 하면됩니다. T를 없애고 넣고싶은 데이터 타입을 넣습니다. 123456789101112template T sum(T a, T b){ return a + b;..

[C++] template(템플릿) 에 관하여 1 (템플릿이란, 함수 템플릿)

안녕하세요 BlockDMask 입니다.오늘은 C++에서 자료형을 마음대로 가지고 놀 수 있는, template (템플릿) 에 대해 알아보겠습니다. 1) 템플릿(Template) 이란.함수나 클래스를 개별적으로 다시 작성하지 않아도, 여러 자료 형으로 사용할 수 있도록 하게 만들어 놓은 틀. 함수 템플릿(Function Template)와 클래스 템플릿(Class Template) 로 나누어집니다.개인적으로 비유를 들자면 펜중에.. 5색펜 이런거 있잖아요. 펜이 한자루 인데. 여러가지 색(자료형)을 우리가 그때그때 쓸 수 있잖아요. template는 여러개의 색(자료형)을 모아놓은 하나의 펜 케이스 그때그때 다른 색(자료형)을 눌러서 사용할 수 있다. 일반 자료형들이 [왼쪽] 펜들 이라고 생각한다면 -> ..

[C++] string 클래스 변환(atoi, c_str()) 등 정리

C++에서 string, char *, int 간의 변환에 대해서 알아보겠습니다.(char* -> int 로 바꾸는 것을 보고싶다면, [바로가기])(string -> int 로 바꾸는 것을 보고싶다면, [바로가기])(int -> string 으로 바로 바꾸는 것을 보고싶다면 [바로가기])(C++ string에 대한 총정리가 보고싶다면 [바로가기]) 1) 함수 설명int atoi (const char * str) 헤더파일(C) : 헤더파일(CPP) : 설명 : C style의 문자열을 입력받아서 int (숫자) 타입으로 변환하여 리턴한다.std::string c_str() 반환형이 char * 이므로, 해당하는 string의 첫번재 문자의 주소값(포인터)를 반환합니다. 사용방법은 아래에 나와있습니다. 2)..

[C++] string 클래스 정리

C++ string 클래스 함수를 정리해보았습니다이쪽으로오세요~ 리뉴얼한 C++ string 총정리편 [바로가기] 1) 헤더파일using namespace std; 를 추가해주어야 합니다.2) 여러 함수 및 초기화 방법들생성1 : string str1("BlockDMask");생성2 : string str1; str1 = "BlockDMask";생성3 : string str2(str1); //다른 string 객체 인자로. 길이1 : str.length();길이2 : str.size(); 한 문자 반환 받기 : str.at(n); //n번째 있는 문자 반환, 배열이라고 생각하면 됨. 0부터 시작. //str[n] 문자열 처럼도 사용가능.문자열 찾기 : str.find("문자열"); //찾는 문자열의 첫번..

반응형