Backend/OS★ 23

inode (index node)

* inode 란? : 리눅스에서 파일을 관리하는 객체, file에 대한 모든 정보를 가진다) - 파일이 새로 생성되면 만들어짐(inode table에 하나 allocation, 삭제시 반납함) - internal representation of a file - 모든 파일은 각각 하나의 inode를 가진다 : 파일의 모든 정보를 관리 - 파일에 속한 블록 위치 - 파일의 소유자 및 접근 권한 - 파일 시간 정보 - 파일 유형 : Disk 에 정적으로 존재 * inode에서 디스크 블록 관리 - single indirect block : index block을 가리킴, 이 인덱스 블록은 실제 데이터 블록을 가리키는 포인터들로 구성 - double indirect block : 인덱스 블록이 2개의 레이어로..

Backend/OS★ 2011.05.26

Task Scheduling

Task scheduling : 자원을 특정 객체가 사용할수 있도록 할당하는 것. 테스크 스케줄링에서는 처리기가 자원이 되고 테스크가 객체가 된다 *Task scheduling 의 목표 : CPU utilization 극대화, task CPU cycle의 효율적인 배치, response time 최적화 * 스케줄링 유형 : 선점형/ 비선점형 스케줄링 * 스케줄링 기준 - 공평성 : 기아상태가 되는 테스크가 없어야 함 - 효율성 : 태스크 선택 과정이 빠르게 수행되어야 한다 - 응답 시간(response time) / 처리율 (throughput) * 태스크 유형(type of task) - Interactive/ batch/real-time * 스케줄링 알고리즘의 예 - FCFS(First Come Fi..

Backend/OS★ 2011.05.26

쓰레드 동기화 (Synchronization)

Thread Synchronization(쓰레드 동기화) -쓰레드를 생성하는 것은 매우 쉽지만, 그 쓰레드들이 데이터를 공유할 때 문제가 생기지 않도록 동기화 시키는 것이 정말 중요하다. - 문제가 발생할 확률은 정말 낮지만, critical system에서는 한번 문제가 발생하게 되면 심각한 결과를 초래하게 된다. - 문제가 발생할 확률이 낮기에 오류를 찾아 내는 것이 무척 어렵다. * Synchronization Tool 1. pthread_join function : Thread 수행 종료시까지 기다린다. 2. Mutex variable function : Rock 을 가진 쓰레드만 코드를 진행할 수 있다. 3. Condition variable functions 4. Reader/writer ex..

Backend/OS★ 2011.05.26

쓰레드(Thread)

Thread - Threads use and exist within these process resources, yet are able to be scheduled by the O/S and run as independent entities within a process - Process안에 속하는 더 작은 수행 단위 - 독립적인 control flow, stack, PC 를 가짐 - Text, data, heap은 다른 thread와 공유함. - Lightweight Process(LWP) - It may be managed by the O/S or by a user application -Basic Pthreads API = Pthread_create : thread 생성 = Pthread_exit ..

Backend/OS★ 2011.05.26

프로세스 (Process)

1. Process란? - 수행중인 프로그램 - 스케줄링 단위 - 프로그램의 수행 환경 - 제어 흐름과 주소 공간의 집합 *프로세스는 수행중인 프로그램이다. 프로세스는 목적을 달성하기 위해 cpu, memory, files, IO 등과 같은 리소스들을 필요로 한다. 2. Process id - 모든 프로세스는 자신만의 id를 가진다. - pid_t getpid(void); : 현재 프로세스의 id를 리턴 - pid_t getppid(void); : 현재 프로세스의 부모의 프로세스 id를 리턴 3. Task의 구조 - Text, Data, Stack, Heap 영역으로 구성 - Text 영역 : 프로그램 코드 부분 - Data 영역 : 전역 변수, 초기화 된 부분과 그렇지 않은 부분을 별도로 관리 - St..

Backend/OS★ 2011.05.26

인터럽트

인터럽트 : 프로세서가 명령문을 수행하고 있을 때 다른 작업을 처리하기 위해 그 수행을 강제로 중단시키는 사건. 1. 인터럽트 동작 방법 ① 운영 체제가 제어권을 갖는다. ② 운영 체제는 도중에 인터럽트가 발생한 프로세스의 상태를 PCB에 저장한다 ③ 운영체제는 인터럽트를 분석해서 해당 인터럽트의 처리 루틴으로 제어권을 넘긴다. ④ 인터럽트 처리 루틴이 수행된다. ⑤ 운영 체제가 제어권을 갖는다. ⑥ 운영 체제가 중지되었던 프로세스의 상태를 복구한다. ⑦ 중지 프로세스가 재실행된다. 2. 인터럽트의 종류 1) SVC(SuperVisor Call) 인터럽트 : 프로그래머에 의해 발생, SVC 명령을 호출하였을때, 입출력 수행할떄, 기억장치를 할당할때, 오퍼레이터와의 대화를 위해 발생 2) 입출력 인터럽트 ..

Backend/OS★ 2011.05.26

주 상태(Major State)

주 상태(Major State) : 현재 CPU가 무엇을 하고 있는가를 나타내는 상태로 Fetch Cycle, Indirect Cycle, Excute Cycle, Interrupt Cycle등이 있으며 이를 제어하기 위해서 제어 장치가 필요하다. 제어 장치는 세 개의 사이클을 구분하기 위해서 2개의 플립플롭(F, R)을 사용한다. 1) 인출 사이클(Fetch Cycle) 메모리로부터 실행하기 위한 다음 명령의 번지를 결정한 후 메모리로부터 명령을 CPU로 읽어들인다. 수행하기 위한 동작과 사용되는 번지의 유형을 결정하기 위해 명령어들을 디코딩해서 분석하는 과정을 말한다. MAR

Backend/OS★ 2011.05.26

명령어 형식(Instruction Format)

명령어 형식(Instruction Format) 1) 0 - Address 명령 형식 : 스택 구조를 가진 컴퓨터에서 사용되는 명령 형식으로 OP -Code만 존재하고 오퍼랜드가 없는 명령어 구조이다. PUSH와 POP 명령을 사용한다. 2) 1 - Address 명령 형식 : 누산기(Accumulator)에서 사용되는 명령어 구조로 오퍼랜드에 저장되어 있는 내용과 누산기의 내용을 연산하여 그 결과를 항상 누산기에 저장한다. 3) 2 - Address 명령 형식 : 컴퓨터에서 가낭 널리 사용되는 형식으로, 입력 자료가 연산 후에는 보존되지 않아 부작용(Side Effect) 이 발생되나 실행 속도가 빠르고 기억 장소를 많이 차지하지 않는다. 오퍼랜드 1의 내용과 오퍼랜드 2의 내용을 더해 오퍼랜드 1에 ..

Backend/OS★ 2011.05.26

주소 지정 방식(Addressing Mode)

주소 지정 방식(Addressing Mode) 1) 즉시 주소 지정 방식(Immediate Addressing Mode) : 오퍼랜드값 자체가 실제 데이터값을 지정하는 방식이다. 오퍼랜드가 명령어 내에 있는 주소 지정의 가장 간단한 형태로 오퍼랜드가 참조할 주소를 나타내는 것이 아니라 주어지는 '값' 자체이다. 변수의 초기값을 설정하거나 상수를 사용 또는 정의할 경우 사용된다. 장점 - 메모리 참조가 없으므로 처리 속도가 가장 빠르다. 단점 - 오퍼랜드의 크기, 즉 자료의 길이에 제한이 있다. 2) 레지스터 주소 지정 방식(Register Addressing Mode) : 직접 주소 지정 방식과 유사하다. 차이점은 오퍼랜드 필드가 메인 메모리의 주소가 아닌 레지스터를 참조한다는 점만이 다르다. 장점 - ..

Backend/OS★ 2011.05.26
반응형