CS 썸네일형 리스트형 스레드 [스레드(Thread)]- 프로세스를 구성하는 실행 흐름의 단위로 하나의 프로세스는 하나 이상의 스레드를 가질 수 있다. 단일 스레드 프로세스 - 실행 흐림이 하나임 프로세스 멀티 스레드 프로세스 - 실행 흐름이 여러 개인 프로세스로 프로세스를 이루는 여러 명령어를 동시 실행이 가능하다. [스레드의 구성 요소] - 실행에 필요한 최소한의 정보로 구성된다 스레드 IDPC(프로그램 카운터)를 비롯한 여러 레지스터 값스택 등 프로세스를 이루는 스레드들은 프로세스의 자원을 공유하면서 실행된다.그림처럼 스레드 1, 2, 3 이 병행 실행이 되어도 똑같은 코드, 데이터 영역을 공유하고 있다. 즉 각각의 스레드가 각각의 코드, 데이터 영역을 갖고있지 않다는 얘기다. 이 프로세스가 파일을 열었다면 스레드 1, .. 더보기 메모리 주소 공간 CPU 와 실행중인 프로그램은 메모리의 모든 내용을 알지 못한다 (몇 번지에 무엇이 저장되어 있는지 다 알 순 없다)이유인즉 메모리에 저장된 값들은 실시간으로 변화하기 때문이다. 새로 실행되는 프로그램은 새롭게 메모리에 적재되고, 실행이 끝난 프로그램은 메모리에서 삭제되며 같은 프로그램을 실행하더라도 실행시마다 적재되는 주소가 달라짐으로 매번 바뀌는 메모리의 상태를 모두 알 순 없다. 이렇게 매번 바뀌는 메모리의 상태를 매 순간 알지 못해도 주소를 활용할 수 있겠끔 하기위해주소를 물리 주소와 논리 주소라는 것으로 나누었다.(이 부분은 가상 메모리 시스템을 같이 알아보면 이해하기가 더 쉬워질 것으로 보인다) [물리 주소]- 메모리 입장에서 바라본 주소- 실제로 정보가 저장되어 있는 하드웨어상의 주소 [논리.. 더보기 컴파일 [컴파일] - 소스 코드 .c 파일을 실행 파일로 변환시켜주는 작업 컴파일 과정에선 크게 4가지 변환기를 통해 실행 파일로 변환된다. 전처리기 -> 컴파일러 -> 어셈블러 -> 링커 전처리기(preprocessing) -> .c 파일을 .i 파일로 전처리해주는 변환기전처리(preprocess) - 본격적으로 컴파일하기 전에 처리할 작업들로 외부에 선언된 다양한 소스코드, 라이브러리(헤더 파일 등)를 포함시키고, 프로그래밍의 편의를 위해 작성된 매크로(define 으로 설정된 상수값 등) 변환과 컴파일할 영역(ifdef 류의 구문)을 명시해준다. 다음과 같은 구문으로 .i 파일을 생성시킬 수 있다.소스 코드 = test.c(gcc -E test.c -o test.i) 생성된 파일을 읽어보면 헤더 파일등의.. 더보기 File System 파일시스템이란? 우리가 자연스럽게 사용하고 있는 파일과 디렉토리를 관리하는 OS 의 내부 프로그램으로 파일과 디렉토리를 보조기억장치에 일목요연하게 저장(할당)하고, 접근할 수 있도록 해준다. 당연하게도 한 컴퓨터 내에서 여러 개의 파일 시스템을 사용할 수 있다.파일고 디렉토리는 데이터의 관점으로 보면 보조기억장치에 저장된 데이터 덩어리 그 자체이며, OS 에서 이 덩어리를 파일과 디렉토리로써 일목요연하게 관리를 해주는 것이다. [파일]- 보조기억장치에 저장되어 있는 의미있는 정보들을 모은 논리적 단위( 관련있는 정보들을 한 곳에 모아둔 단위로 이해하면 된다.)- 파일에는 파일을 실행하기 위한 정보, 파일을 구성하고 있는 정보, 부가 정보(속성 or meta data) 들이 존재한다.(흔히 window 에.. 더보기 이전 1 다음