본문 바로가기

Computer Science

(46)
[Lecture 3] Unix Signals #Unix Signals 유닉스/리눅스에서 시그널이란 무엇일까? 리눅스 터미널에서 프로그램을 실행시키다가 ctrl-c 를 눌러서 프로그램을 강제로 종료 시켜본 경험이 있다면 이미 시그널을 보내 보았다는 의미이다. 프로그램을 실행시키다가 ctrl-c를 누르면 인터럽트를 발생 시켜 운영체제가 프로그램에 제제를 건다. 이렇게 프로세스에서 특정 event가 발생 했을 때 "신호"를 보내는 것을 시그널이라고 한다. 유닉스 신호는 kernel이 사전 정의된 집합(< 32)에서 관심 있는 이벤트를 프로세스에 알릴 수 있는 메커니즘을 제시한다. 정수 번호로 표시되며, 일부 선택적 추가 정보와 연관되기도 한다. 여기서 이런 event들은 2가지로 분류된다 Synchronous (동기적) event: 프로세스가 수행한 어..
[Lecture 2] Unix File Descriptors and Pipes #Unix File Descriptors Unix file descritors, 유닉스 파일 디스크립터는 운영 체계에서 파일을 사용할 때 각 파일에 대한 정보를 유지하는 기억 장치의 한 영역, 또는 그 정보이다. 파일 디스크립터는 사용자 프로세스가 바이트 시퀀스인 파일을 참조할 수 있도록 하는 핸들(handle)이다. 유닉스는 디스크, 터미널, 네트워크 소켓, IPC 채널(파이프 등)과 같은 다양한 커널 추상화를 추상 I/O 장치 파일로 표현한다. 기본 개체의 종류에 관계없이 동일한 API 제공 read(2), write(2), close(2), lseek(2), dup2() 등등 검색 가능한 경우 읽기/쓰기 위치를 유지할 수 있음 참고: 모든 종류의 파일 디스크립터에서 모든 작업이 작동하는 것은 아니다..
[Lecture 1-3] Processes Part III #Process Management OS 는 process들을 관리 하기 위해 API (system calls)들을 제공한다. 프로세스를 관리 하기위해선 여러가지의 단계가 필요하다. Process Creation: 프로세스를 생성하는 단계이다, 보통 프로세스의 새로운 환경을 생성하는 것을 포함한다. Process Termination: 이단계는 일반적인 프로세스 종료와 비정상적 프로세스종료를 포함한다. 일반적이 프로세스 종료 (Normal termination) 은 main() 함수에서 return된 exit() 함수같은 것이고, 비정상적 종료 (Abnormal termination) 은 보통 예상치못한 crash나 외부 개입에 의해 프로세스가 "kill" 된상태이다 Process interaction:..
[Mini-Lecture] Character Sets and Unicode #Character Sets Character Set, 문자 집합이란, 컴퓨터에서 정보의 표현 수단으로 사용되는 글자들의 집합을 뜻한다. 문자 집합을 더 자세하게 알기 위해선 bytes가 무엇인지 알아야 한다. Byte는 디지털 정보 즉 데이터 처리의 기본 단위이다. 바이트는 1-bit가 8개, 즉 8비트이고, 옥텟으로 불리기도 한다. 바이트는 8비트 이기 때문에 2^8승 즉 256개의 값을 나타낼 수 있다. 이진법 에서는 0-255, 16진법 에서는 0x00 에서 0xff까지 나타낼수 있다. 문자랑 인간의 언어를 적는 데 사용하는 추상적이고 시각적인 기호 체계이다. 아래 예시를 한번 보자. 우리는 아무런 문자나 숫자 없이도 아래 그림들을 연결 지을수 있다 (사과, 나무, 해바라기, 프리첼, 비치볼, 집..
[Lecture 1-2] Processes Part II (Process State) #Process State 프로세스의 상태는 크게 3가지, 세분화 되었을 때는 많으면 5가지에서 15가지 까지 나뉠 수 있다. 프로세스 상태의 개수는 OS 아키텍쳐 마다 다르게 디자인 되어있기 때문에 OS 마다 다를 수 있다. 우리는 크게 3가지 process state를 알아보자. Running 프로세스가 하나의 명령어를 할당 받아 CPU에서 실행 시키고 있는 상태 Ready 프로세스가 운영체제의 승인을 받고 CPU에서 실행이 준비된 상태 (CPU 지정을 기다리는 상태/No CPU is ready at this state, CPU 제외 다른 자원들은 프로세스의 메모리 로드 상태) Blocked (waiting) 프로세스가 어떠한 event (보통 I/O 요청에 의한 syscall , 또는 동기신호[sy..
[Lecture 1-1] Processes Part I #프로세스란? 컴퓨터 운영체제에서 프로세스란 컴퓨터에서 실행되고 있는 컴퓨터 프로그램을 말한다. 프로그램과 프로세스의 차이는 컴퓨터에 다운로드만 돼있는 명령어와 정적 데이터는 프로그램이고, 그 프로그램을 실행시키는 순간 프로세스가 된다. 운영체제는 각 프로세스 마다 locial flow를 부여하고 single-thread 프로그램은 하나, multi-thread 프로그램에는 여러 개의 flow를 부여한다. 또, 운영체제는 private, protected address space와 같은 memory address를 부여하고 file descriptor와 같은 abstracted resources도 부여한다. # Context Switching Context switching은 CPU가 현재 실행하고 있는..