본문 바로가기

프로그래밍/C++

(37)
커널 영역과 유저 영역 커널 영역: 운영체제를 실행시키기 위해서 필요한 메모리 공간 유저 영역: 코드 영역, 데이터 영역, 스택 및 힙 영역 커널 레벨 (Kernel Level) 스레드: 스레드를 생성 및 스케줄링하는 주체가 커널일 경우 유저 레벨 (User Level) 스레드: 커널에 의존적이지 않은 형태로 스레드의 기능을 제공하는 라이브러리를 활용할 수 있다 여러 개의 프로세스들이 실행 중일 때, 정해진 타임 슬라이스가 지나서 스케줄러가 동작하려 하면 커널 모드로의 전환이 일어난다. 스케줄러는 커널의 일부이기 때문이다. 커널 모드와 유저 모드의 차이점: 프로세스가 유저 모드에서 동작할 때는 커널 영역으로의 접근이 금지된다. 반면, 커널 모드에서 동작할 때는 모든 영역의 접근이 허용된다 커널 레벨 스레드의 장점, 단점 장점 ..
스레드 (Thread) 스레드(Thread): 하나의 프로그램 내에서 여러 개의 실행 흐름을 두기 위한 모델 스레드들 사이에는 공유하는 요소들이 있다 공유하는 요소가 있는 관계로 컨텍스트 스위칭에 걸리는 시간이 프로세스보다 짧다 해당 스레드만을 위한 스택을 생성하고 그 외의 영역은 부모 프로세스의 영역을 공유한다 스레드의 특성 1. 스레드마다 스택을 독립적으로 할당해 준다. 실행 흐름의 추가를 위한 최소 조건이 독립된 스택의 제공 2. 코드 영역을 공유한다. 3. 데이터 영역과 힙을 공유한다.
커널 (Kernel) 커널(Kernel): 컴퓨터를 운영하는 데 있어서 중심이 되는 운영체제 핵심 부분 커널 오브젝트 (Kernel Object): 커널에서 관리하는 중요한 정보를 담아둔 데이터 블록윈도우 OS는 프로세스, 스레드 혹은 파일과 같은 리소스들을 원활히 관리하기 위해 필요한 정보를 저장해야 한다. 이때 데이터를 저장하는 메모리 블록을 가리켜 커널 오브젝트라 한다. 핸들 (Handle): 커널 오브젝트에 할당되는 숫자, 프로세스 커널 오브젝트에 존재하는 우선순위 정보를 변경해야할 때 사용한다. 커널 오브젝트의 종속관계1. 커널 오브젝트는 프로세스에 종속적인 것이 아니라, OS에 종속적인 관계로 커널 오브젝트의 소멸 시점은 OS에 의해서 결정된다. 2. 커널 오브젝트는 프로세스에 종속적인 것이 아니라 OS에 종속적인..
문자열 아스키 코드: 1바이트로 표현된다 유니코드: 문자를 표현하는데 있어서 균일하게 2바이트를 사용한다. 2바이트이면 65536개의 문자의 종류를 표현할 수 있다. Character Set: 문자들의 집합, 약속된 문자 표현방법 SBCS(Single Byte Character Set): 문자를 표현하는데 있어서 1바이트만을 사용하는 방식 MBCS(Multi Byte Character Set): 다양한 바이트 수를 사용해서 문자를 표현하는 방식 WBCS(Wide Byte Character Set): 모든 문자를 2바이트로 처리하는 문자셋 요약하면 SBCS는 아스키 코드와 같은 1바이트이고MBCS는 1바이트 2바이트를 모두 지원하는 방식WBCS는 2바이트만 표현가능하다 즉 아스키 코드 -> 멀티바이트 -> 유니 ..
시스템 프로그래밍 정보통신공학 전공자이지만.. 학교에서 배운 OS가 기억이 잘 안나서 책을 찾아보고 있었다. 추천받은 책은 뇌를 자극하는 윈도우즈 시스템 프로그래밍, 목차를 쭉 읽어봤는데 OS뿐만 아니라 컴퓨터 아키텍쳐에 관한 내용도 있어서 구매를 하게 되었다. 난 정리하면서 책을 보는게 더 머리에 잘 들어오기 때문에 나름 정리한다고 정리를 시작해본다 내가 정리한 걸 본다고 책의 내용 전부를 봤다고 할 순 없지만 맥락은 이해할 수 있으리라고 본다 시스템 프로그램이란? : 컴퓨터 시스템을 동작시키는 프로그램 컴퓨터 시스템의 주요 구성요소 : CPU Cache (컴퓨터 구조) 메인 메모리 하드디스크 (OS) 하드웨어의 구성 1. CPU : 중앙처리장치, 연산을 담당한다. 2. 메인 메모리 : 컴파일이 완료된 프로그램 코드가 ..