본문 바로가기
쿼리 결과가 없는 상태에서의 isnull (혹은nvl) 함수의 동작 select isnull( Code , 0) testTable where Code = 'N01'; 위 쿼리에서 Code에 해당하는 결과가 아무것도 없다면 어떻게 실행될까? 0이 찍힐까? => 보여줄 결과가 없기때문에 isnull을 타지 않고 아무것도 표시되지 않는다. 의외로 자주 헷갈린다. 2019. 6. 10.
iamroot 커널스터디 5월 25일 1주차 운영체제는 일반적으로 자원관리자 라고 정의된다. CPU, 메모리, 디스크등의 자원을 관리하여 일반 사용자들이 컴퓨터를 사용할 수 있도록 지원. + 운영체제가 사용자가 작성한 프로그램을 저장하는 과정 1. 운영체제는 우선 디스크의 일부 공간을 할당받는다.(일반적으로 4KB 크기의 공간을 할당받으며 이것을 디스크 블록이라 한다.) 2. 파일의 속성 정보(만들어진 시간, 만든 사람, 접근제어 정보등)을 저장하기 위한 공간을 디스크에 할당한다. 이는 inode라고 할 수 있다. 3. 마지막으로 파일 이름인 test.c와 inode간에 연결을 만들고 inode와 파일의 내용이 들어있는 디스크 블록을 연결한다. 따라서 파일 이름만 알면 inode연결을 통하여 그 파일의 내용, 파일을 만든 시간 정보 등을 찾아 갈 .. 2019. 5. 25.
버디할당자의 페이지할당과정 및 물리메모리할당 코드분석 2개의 페이지 프레임 할당요청이 발생했다고 가정하자. 버디할당자는 우선 free_area[1]의 free_list를 검색한다. 왜냐 2페이지가 필요하다고 하니까 order가 1(2^1)인곳을 뒤지겠지. 아무튼 거기를 뒤져서 할당가능한 페이지프레임이 있으면 할당해주고 비트맵에 이를 반영해준다. 이때 또다시 2페이지 프레임 할당요청이 들어왔으나 free_area[1]의 free_list에 연속된 2개의 free프레임이 없으면 어떻게 할까?=> free_area[2]의 free_list에 연속된 4개의 페이지프레임을 분할하여 두페이지 프레임을 할당해주고 나머지 두개의 프레임은 free_area[1]의 free_list에 넣어준다. 급정리 버디 할당자는 요청된 크기를 만족하는 최소의 페이지 프레임을 할당 해 준.. 2019. 5. 22.
리눅스 물리메모리 관리구조 ※[리눅스 커널 내부구조]책을 읽고 요약한 내용입니다. Node 리눅스에서 접근속도가 같은 메모리의 집합을 뱅크라고 부른다. UMA 구조라면 한개의 뱅크가 존재하고, NUMA구조라면 복수개의 뱅크가 존재하게 된다. 리눅스에서는 뱅크를 표현하는 구조가 노드이다. UMA구조의 시스템이라면 한개의 노드가 존재하며, 이는 config_page_data를 통해 접근 가능하다. NUMA구조의 시스템이라면 복수개의 노드가 존재 하며 리스트를 통해 관리된다. pgdat_list라는 이름의 배열을 통해 접근이 가능하다. 리눅스는 UMA/NUMA 구조와 관계없이 노드라는 일관된 자료구조를 통해 전체 물리메모리를 접근 할 수 있다. 하나의 노드는 pg_data_t 구조체를 통해 표현된다. pg_data_t 구조체는 아래와같.. 2019. 5. 21.
메모리 관리기법과 가상메모리 ※[리눅스 커널 내부구조]책을 읽고 요약한 내용입니다. 초창기에 컴퓨터가 개발될 때 부터 사용자는 시스템에 물리적으로 존재하는것보다 더 많은 양의 메모리를 필요로 했다. 그중에서 가장 성공적이며 지금 대부분의 시스템에서 사용하는 방법이 '가상메모리'방식이다. 가상메모리 가상메모리는 실제 시스템에 존재하는 물리메모리의 크기와 관계없이 가상적인 주소공간을 사용자 태스크에게 제공한다. 32bit의 CPU의 경우 2^32크기인 4GB를, 64bit의 CPU의 경우 2^64 크기의 주소공간을 사용자에게 할당한다. (따라서 32bit CPU 기준으로 각 태스크마다 4GB의 공간을 가지고 있다고 할 수 있다.) 한가지 주의할점은, 물리적으로 4GB의 메모리를 전부 사용자 태스크에게 제공하는 것은 아니라는 점이다. 4.. 2019. 5. 20.
iamroot 오리엔테이션 토요일 3시~10시 스터디 커널 학습 과정 1. 쉬운책으로 6개월 보기 책 - ARM 리눅스 커널 개념스터디 2. Head.S 분석 3개월 세세하게 들어가지 말고 전체적인 줄기를 보자.(그전에 부트로더 보지말기.) 3. start kernel 참고자료 문C 블로그 -중요도에 따라서 공부하기. -코드 주석 참고하기. 조언 - 기록을 꼼꼼하게 하자. 모든자료를 문서화하자. 남는것은 기록과 경험과 사람과 자신감. - 자료를 이미지화 하자. 이해한것을 이미지로 표현해보자. 글로만 이해했다면 효과가 미미하다. - 이론학습은 틈나는대로 예습/복습을 해야 한다. - 응용쪽 기술은 빠르게 변화하지만, 커널은 잘 변하지 않는다. 때문에 커널을 익혀두면 개인의 강점으로 가져갈 수 있다. x86계열이 아닌 ARM을 하는이유.. 2019. 5. 20.