Download presentation
Presentation is loading. Please wait.
1
UNIX Unbounded A Beginning Approach
이 성 현 Home : nimilx2.hannam.ac.kr Tel :
2
목차 운영체제의 기초 개념 유닉스 개요 유닉스 파일 시스템의 개요 유닉스 커널 개요 인터럽트 처리 INODE
프로세스 관리 및 스케쥴 질의 및 응답
3
운영체제의 기초 개념 = 운영체제의 기본적인 구현 두 가지
하드웨어 구성 요소와 상호 작용하여, 하드웨어 플랫폼에 들어 있는 저수준의 프로그래밍 가능한 모든 요소를 서비스 컴퓨터 시스템에서 동작하는 응용프로그램(또는 사용자 프로그램)을 위한 실행 환경 제공 Nonprivileged mode Privileged mode user mode kernel mode CPU 측면 kernel 측면 =
4
운영체제의 기초 개념 멀티유저 시스템 정의 요구 사항
두 명 이상의 사용자가 각자 여러 응용 프로그램을 동시에 그리고 서로 독립적으로 실행할 수 있는 컴퓨터 요구 사항 사용자와 신원을 확인할 수 있는 인증 메커니즘 버그가 있는 프로그램이 시스템의 다른 응용프로그램에 대한 실행을 막을 수 있는 메커니즘 악의적인 사용자 프로그램이 다른 사용자의 활동을 방해하거나 염탐하는 것을 막을 수 있는 메커니즘 각 사용자에게 할당되는 자원의 양을 제한할 수 있는 회계(accounting) 메커니즘 각 응용프로그램이 다른 사용자가 실행한 응용프로그램이 어떤 일을 하는지 신경쓰지 않고 자신의 작업을 수행할 수 있음 같은 시간에 여러 응용프로그램이 동작 중인 상태에 있으며, CPU나 메모리, 하드디스크 같은 여러 자원을 사용하기 위해 경쟁
5
운영체제의 기초 개념 사용자와 그룹 UID(User ID) GID(Group ID)
각 사용자의 개인 영역을 식별하는 고유 번호로 구별 Login Name & Password로 사용자 확인 GID(Group ID) 사용자가 속한 그룹을 식별하는 고유 번호로 구별 시스템상의 각 파일은 하나의 그룹과 연관 각 파일에 대한 사용자 그룹의 권한 설정 superuser(root 또는 supervisor) 시스템 유지 작업을 위한 특별한 사용자 일반적인 보호 메커니즘을 적용하지 않음
6
운영체제의 기초 개념 프로세스(Process) 정의 프로세스 & 쓰레드 실행상태에 있는 프로그램의 인스턴스(instance)
실행하고 있는 프로그램의 실행 컨텍스트(context) 프로세스 & 쓰레드 CPU 레지스터 값; 프로세스의 총체적이고도 순간적인 상태 프로세스 주소공간 쓰레드 텍스트 컨텍스트 CPU 상태 스택 데이터
7
운영체제의 기초 개념 커널 커널의 정의 기능 사용자 관점에서의 커널
컴퓨터내의 자원을 사용자 프로그램이 사용할 수 있도록 관리하는 프로그램 기능 프로세스 관리 / 파일시스템 관리 / 메모리 관리 / 네트워크 관리 사용자 관점에서의 커널 User Application Library & Shell System Call Kernel
8
운영체제의 기초 개념 커널의 기본구조 _ 기능적인 분류 User Programming & System Library
CPU, RAM, DISK, CD, Console, Solaris & Parallel port, Network Card, Board specific feature, etc Process Management Architecture Dependency Memory Manager Device Driver (Character, Block) File System Tvoes Networking BSD Socket INET Network Protocol Interface Drivers User Kernel PHYSICAL
9
Integrated Kernel Architecture Micro Kernel Architecture
운영체제의 기초 개념 커널 구조 Integrated Kernel vs. Micro Kernel System Service API Integrated Kernel Architecture Micro Kernel Architecture Server Security 통합 커널(또는 모놀리틱 커널) 마이크로 커널 각 커널 계층이 하나의 커널 프로그램으로 통합 프로세스를 대신하여 커널 모드에서 동작 수행속도가 빠르나 업그레이드가 어려움 적은 기능을 커널에 요구 마이크로 커널에 메모리 할당, 장치 드라이버, 시스템 콜 핸들러 기능 구현 속도가 느리나, 업그레이드가 쉬움
10
유닉스 개요 유닉스 계보 Version 6 (1975) (1979) BSD (1977) XENIX (1979 ~)
System III (1982) System V.2 (1984) System V.3 (1986) System V.4 (1988) OSF/1 (1992) 4.4 BSD (1993) 4.2 BSD 4.3 BSD (1985) 후속 버전 영향 AT&T Bell 연구소
11
유닉스 개요 기능상의 유닉스 계보 System V.3 BSD4.4 OSF/1 System V.4 (1982)1 SunOS
LINUX DEC Solaris HP-UX 10 AIX IRIX SCO UNIX UNIX 정의 UNIX 구현
12
유닉스 개요 하드웨어 의존적인 소스 코드와 하드웨어에 무관한 소스코드 분리
유닉스가 지원하는 하드웨어 플랫폼에 해당하는 9개의 서브 디렉토리 존재 arm : Acorn 개인용 컴퓨터 alpha : 컴팩 알파 워크스테이션 i386 : 인텔 80x86이나 IBM 호환 개인용 컴퓨터 m68k : 모토로라 MC680x0 마이크로를 탑재한 개인용 컴퓨터 mips : 실리콘 그래픽스의 MIPS 마이크로프로세서를 사용하는 워크스테이션 ppc : 모토로라 IBM의 파워PC 마이크로프로세서를 사용하는 워크스테이션 sparc : SUN 사의 SPARC 마이크로프로세서를 사용하는 워크스테이션 sparc64 :SUN 사의 Ultra SPARC 마이크로프로세서를 사용하는 워크스테이션 s390 : IBM 시스템/390 메인 프레임
13
유닉스 개요 UNIX운영체제 설계 철학의 우수성 프로세스의 CPU 경쟁 획득 방식 등
OS/2, Windows NT … 유사 시스템 설계 및 고성능 유닉스 어플리케이션 설계 프로세스 메모리 관리 입출력, 파일 시스템을 위한 메커니즘 커널의 자료구조와 알고리즘
14
유닉스 파일 시스템의 개요 유닉스에 의해 관리되는 파일 시스템 유닉스 파일 시스템의 특징
정규파일 : 데이터, 코드의 일련의 바이트 포함, 시스템호출에 의해 접근 디렉토리 파일 특수파일 : 프린터, 디스크 등의 장치, 파이프와 소켓 등의 IPC에 사용되도록 연결되는 파일 유닉스 파일 시스템의 특징 바이트의 선형적 연속 기본적으로 유닉스 커널은 레코드, 필드와 같은 고급 수준의 파일 구조를 지원하지 않음
15
유닉스 파일 시스템의 개요 파일 유닉스 파일은 일련의 바이트로 이루어진 정보를 담는 그릇
트리의 모든 노드(node)는 디렉토리명을 의미 / dev . . . home bin usr fd0
16
유닉스 파일 시스템의 개요 하드 링크와 소프트 링크 하드 링크 소프트 링크 정의
디렉토리에 있는 파일명을 파일 하드 링크(또는 링크) 하드 링크의 두 가지 제약 디렉토리에 대한 하드링크를 만들 수 없다. 링크는 동일한 파일시스템에 들어 있는 파일 사이에서만 만들 수 있다. 소프트 링크 다른 파일의 임의 경로명을 포함하는 짧은 파일 특성 경로명은 파일시스템 내의 어떠한 파일도 가리킬 수 있으며, 실제로 존재하지 않는 파일을 가리킬 수도 있다.
17
입출력 장치와 커널에 통합되어 있는 장치 드라이버와 연동
유닉스 파일 시스템의 개요 파일 유형 유닉스 파일 유형 정규 파일 디렉토리(directory) 심볼릭 링크(symbolic link) 블록 장치에 해당하는 장치 파일 문자 장치에 해당하는 장치 파일 파이프(pipe)와 지정 파이프(named pipe : FIFO라고도 함) 소켓(socket) 모든 유닉스 파일시스템의 구성요소 입출력 장치와 커널에 통합되어 있는 장치 드라이버와 연동 프로세스간 통신을 위해 사용하는 특별한 파일
18
유닉스 파일 시스템의 개요 파일 디스크립터와 아이노드 POSIX 표준에서 규정한 최소한의 속성 제공
유닉스는 파일과 파일 디스크립터를 명확하게 구별 POSIX 표준에서 규정한 최소한의 속성 제공 파일 유형 파일과 연계되어 있는 하드 링크의 수 바이트 단위로 된 파일 길이 장치 ID (즉, 파일을 포함하고 있는 장치의 식별자) 파일시스템에 들어 있는 파일을 구별할 수 있는 아이노드 번호) 파일을 소유하고 있는 사용자의 ID 파일의 그룹 ID 아이노드 상태 관련 시간 기록 접근 권한과 파일 모드
19
유닉스 파일 시스템의 개요 아이노드 구조 i_dev, i_ino, i_mode, i_nlink i_uid, i_gid
i_rdev, i_size i_atime, ctime, mtime … 12 direct block 3 indirect block type (4bit) u g s S_IFSOCK S_IFLNK S_IFIFO
20
유닉스 파일 시스템의 개요 접근 권한과 파일 모드 파일 사용자의 세 유형 파일 모드를 정의하기 위한 세 플래그
파일을 소유하고 있는 사용자 소유자를 제외하고 파일과 같은 그룹에 속해 있는 사용자 그 밖의 사용자 파일 모드를 정의하기 위한 세 플래그 suid : 어떤 파일을 실행하는 프로세스는 보통 프로세스 소유자의 UID를 갖음 sgid : 어떤 파일을 실행하는 프로세스는 보통 프로세스 그룹의 GID를 갖음 sticky : stick 플래그가 설정된 실행 파일은 실행 후 종료되더라도 메모리에 프로그램을 유지하도록 커널에 요청(현재에는 사용되지 않음)
21
유닉스 파일 시스템의 개요 파일을 다루는 시스템 콜 파일 열기 파일 닫기
fd = open(path, flag, mode); 열린 파일(open file) 객체를 생성 파일 디스크립터(file descriptor)를 반환 파일 닫기 res = close(fd); //파일 디스크립터의 fd에 해당하는 열린 파일 객체를 해제 새로 생성할 파일의 접근 권한 지정 파일을 어떻게 열 것인지 결정 (읽기, 쓰기, 읽기/쓰기, 추가) 열 파일 경로명(상대/절대 경로)
22
유닉스 파일 시스템의 개요 파일을 다루는 시스템 콜 열린 파일에 접근하기 파일명 변경과 파일 삭제 lseek() 시스템 콜
newoffset = lseek(fd, offset, whence); read() 시스템 콜 nread = read(fd, buf. count); 파일명 변경과 파일 삭제 res = rename(oldpath, newpath); // 파일 링크 이름을 변경 res = unlink(pathname); // 파일의 링크 횟수를 줄이고, 해당 디렉토리 엔트리를 제거
23
유닉스 파일 시스템의 개요 system_call 흐름도 system_call restore_all tracesys_exit
ret_from_sys_call tracesys badsys ret_with_reschedule restore_all ret_from_intr handle_softirq ret_from_exception reschedule signal_return v86_signal_return
24
유닉스 커널 개요 커널은 유닉스의 핵심부분을 수행 시스템 ON시 디스크로부터 RAM으로 적재되는 유닉스의 핵심 프로그램
프로세스 사이에 CPU와 RAM을 경쟁하며 공유 시스템 호출 처리 주변 장치 다루기 시스템 ON시 디스크로부터 RAM으로 적재되는 유닉스의 핵심 프로그램 대부분 C언어로 작성(속도에 민감한 일부 부분은 어셈블리로 작성) 사용자 프로그램은 시스템호출 인터페이스를 통해 커널로 접근
25
유닉스 커널 개요 커널-프로세스와 파일 프로세스 IPC 파일 … I/O
26
유닉스 커널 개요 커널과 대화 프로세스는 시스템호출을 통해 커널의 기능에 접근 외부 장치는 하드웨어 인터럽트로 커널과 통신
시스템호출, 하드웨어 인터럽트는 외부 세계와 커널이 대화하는 유일한 수단
27
유닉스 커널 개요 시스템 호출 정합 입/출력 IPC 프로세스관리 커널에 대한 프로그래머의 기능적 인터페이스 프로세스
28
유닉스 커널 개요 사용자 모드와 커널 모드 사용자 모드 커널 모드 사용자 프로세스로부터 보호되는 커널 메모리공간에 상주
주요 커널 자료구조에 접근할 수 없는 모드 커널 모드 모든 시스템 호출이 실행가능 (시스템 호출을 통해 커널 모드로 진입) 사용자 프로세스로부터 보호되는 커널 메모리공간에 상주 커널이 포함하는 주요 두 자료구조 프로세스 테이블 열린 파일 테이블
29
유닉스 커널 개요 프로세스와 커널 모드 프로세스 구현 커널 프로세스
커널 주소 공간의 커널 모드에서 실행 사용자와 상호 작용을 하지 않는다. 따라서 터미널 장치가 불필요 일반적으로 시스템을 시작할 때 만들어지고, 시스템을 종료할 때까지 존재 프로세스 구현 프로세스의 실행 중단시, 커널에 의해 프로세스 디스크립터에 저장 프로그램 카운터와 스택 포인터 레지스터 범용 레지스터 부동 소수점 레지스터 프로세서 제어 레지스터 메모리 관리 레지스터
30
유닉스 커널 개요 사용자 모드와 커널 모드 사이의 전환 사용자 모드 시스템 콜 핸들러 프로세스 1 프로세스 2 커널 모드 스케
줄러 인터럽트
31
유닉스 커널 개요 프로세스 주소 공간 프로세스는 자신의 주소 공간에서 실행
사용자 모드에서 실행되는 프로세스는 자신만의 스택과 데이터, 코드 영역 사용 재진입이 가능하므로 커널 제어 경로가 실행 주소 공간의 일부를 프로세스 사이에서 공유하는 경우 메모리의 절약을 위해 필요 Ex) 동일 프로그램 사용 공유 메모리 기법 사용 시스템 V 리눅스
32
유닉스 커널 개요 동기화와 임계 영역 비선점형 커널 인터럽트 금지 세마포어 스핀락 데드락 피하기
프로세스가 실행 중이면 임의 보류나 프로세스 교체를 할 수 없음 인터럽트 금지 프로세스가 임계 영역에 들어가기 전에 모든 하드웨어 인터럽트 금지 프로세스가 임계 영역을 빠져나오면 인터럽트 허용 세마포어 자료 구조와 연계된 간단한 카운터 스핀락 세마포어와 유사하지만 프로세스 목록이 없음 프로세스가 사용하려고 하는 락을 다른 프로세스가 사용하려고 잠그면, 락이 풀릴 때까지 명령어를 실행하며 프로세스가 회전(spin) 데드락 피하기
33
유닉스 커널 개요 시그널과 프로세스간 통신 정의 리눅스에서 지원하는 프로세스간 통신 프로세스간의 의사 전달 수단
프로세스간에 실행을 동기적으로 맞출 수 있는 방법을 제공 리눅스에서 지원하는 프로세스간 통신 시그널, FIFO, 파이프 소켓 … 네트워크 세마포어, 메시지 큐, 공유메모리 … 시스템 V
34
Kern_ipc_perm() 함수, flag 반환
유닉스 커널 개요 프로세스간 통신 프로세스 시그널 파이프 FIFO 세마포어 메시지 큐 공유메모리 IPC 방법 = IPC 객체 Kern_ipc_perm() 함수 커널에 의해 생성 key uid gid cuid cgid mode seq Kern_ipc_perm() 함수, flag 반환
35
sys_rt_signalpromask()
유닉스 커널 개요 유닉스 커널 개요 시그널과 프로세스간 통신 signal 흐름 send_singal() 시그널 핸들러 등록 프로세스 시그널 전송 현 상태 저장 시스템 콜 pending 상태 이전 상태 복원 sys_rt_signalpromask() sys_rt_sigpending() . 시그널 핸들러 masking / unmasking 중단 무시(ignore) core dump
36
유닉스 커널 개요 메모리 관리 가상메모리 가상 메모리의 단점 메모리 단편화
추상적 메모리 개념으로 메모리 관리 유닛(MMU) 사이에 논리적 계층으로 동작 가상 주소 공간(virtual address space) 개념 가상 메모리의 장점 여러 프로세스를 동시에 실행 물리 메모리보다 더 많은 메모리를 요구하는 응용프로그램 실행 프로그램 코드의 일부분을 메모리에 로드하여 프로세스 실행 각 프로세스가 사용 가능한 물리 메모리의 부분 집합에 접근 가능 프로세스가 라이브러리나 단일 메모리 이미지에 대한 공유가 가능 재배치(relocation)이 가능 하드웨어에 의존하지 않는 코드의 작성 가능 가상 메모리의 단점 메모리 단편화 연속된 메모리 영역을 사용하는 경우에 단편화 되어 있으면 메모리 요구가 실패
37
BSS : Block Shared by Symbol
유닉스 커널 개요 가상 메모리 구조 kernel stack text data bss kernel space : 1 GB user space : 3 GB 가상 메모리 : 4 GB 3 GB heap /*지역 변수*/ argc, argv, etc.. /*전역 변수*/ a, b, etc.. /*명령어*/ BSS : Block Shared by Symbol
38
유닉스 커널 개요 메모리 관리 커널 메모리 할당자 메모리 할당자가 가져야 할 특징
시스템의 모든 부분에서 메모리 영역에 관련한 요청을 처리하는 서브시스템 커널 서브시스템 또는 사용자 프로그램이 시스템 콜을 요청하여 호출 메모리 할당자가 가져야 할 특징 빠른 수행속도 낭비되는 메모리 양의 최소화 메모리 단편화의 최소화 다른 메모리 관리 서브시스템과의 협력
39
유닉스 커널 개요 메모리 관리 프로세스의 가상 주소 공간 다루기 메모리 영역으로 구성한 가상 주소 공간 할당
커널은 프로세스의 가상 주소 공간을 메모리 영역 디스크립터 목록으로 저장 메모리 영역으로 구성한 가상 주소 공간 할당 실행 코드 초기화 데이터 초기화되지 않은 데이터 초기 프로그램 스택 공유 라이브러리에 필요한 실행 코드와 데이터 힙
40
유닉스 커널 개요 메모리 관리 스와핑과 캐싱 스와핑 프로세스가 사용할 수 있는 가상 주소 공간의 크기를 확장
페이지 프레임 내용을 기본 스와핑 단위로 취급 스왑 아웃된 페이지 접근시 예외 발생 에외 핸들러가 새로운 페이지 프레임 할당후, 이전 내용으로 초기화 캐싱 메모리에 비해 하드디스크가 느리기 때문에 병목현상 발생 디스크의 읽은 블록에 대응하는 디스크 버퍼를 램에 로드 디스크에 기록하는 것을 나중으로 미루는 정책 주기적으로 바뀐 버퍼를 디스크에 기록
41
유닉스 커널 개요 장치 드라이버 장치 드라이버 사용시의 이점 커널은 장치 드라이버를 통해 입출력 장치와 상호 작용
장치를 제어하는 자료 구조와 함수로 이루어짐 장치 드라이버 사용시의 이점 장치 고유의 코드를 특정 모듈에 삽입 가능 인터페이스 명세만으로 새로운 장치 추가 가능 모든 장치를 동일하게 취급하고, 같은 인터페이스로 접근 시스템을 재부팅하지 않고도 동적으로 로드할 수 있는 모듈 장치 드라이버를 만들 수 있음
42
(Device Driver Interface)
유닉스 커널 개요 장치 드라이버 인터페이스 P 시스템 콜 인터페이스 가상 파일시스템 문자 장치 파일 블록 장치 파일 tty 드라이버 테이프 디스크 커널 DDI (Device Driver Interface)
43
시스템 호출이 종료되고 스케줄 될 때 까지 잠든다
인터럽트 처리 시스템 호출은 일반적으로 특정 프로세스에 의해 선점되지 않음 외부장치접근과 같은 많은 시간이 소모되는 시스템호출은 그 작동이 완료될 때까지 그 시스템호출을 수행한 프로세스를 잠들게 함 CPU는 다른 프로세스를 수행하도록 스케줄 프로세스1 CPU 디스크 프로세스2 Read() 시스템호출 시스템 호출이 종료되고 스케줄 될 때 까지 잠든다
44
인터럽트 처리 인터럽트 하드웨어가 커널에게 처리를 부탁
CPU를 차지하기위한 프로세스 경쟁과 같이 하드웨어 장치들도 인터럽트 처리를 위해 경쟁 장치의 중요도에 따라 우선순위가 할당됨 인터럽트가 발생하면 현재 실행중인 프로세스는 일시 중지되고 인터럽트가 처리됨
45
인터럽트 처리 인터럽트 처리 도중 다른 인터럽트 발생시 프로세스1
현재 처리중인 인터럽트 보다 우선 순위가 높은 인터럽트가 발생하면 현재 처리 중인 인터럽트 처리는 중지되며, 새로 발생한 인터럽트가 처리됨 현재 처리중인 인터럽트 보다 낮은 우선순위의 인터럽트이면 무시됨 인터럽트1 발생 프로세스1 인터럽트1 처리루틴 인터럽트2 발생 인터럽트2 처리루틴
46
인터럽트 처리 프로세스가 시스템 호출시 또 다른 인터럽트를 무시하도록 특정 수준의 인터럽트 무시 명령을 수행할 수 있음
입출력을 수행하는 프로세스에서 지정
47
INODE inode : Index Node 디스크의 시작 부분의 특수장소에 저장됨 모든 파일은 inode를 가짐
각 파일에 대한 정보 기억 파일의 유형:정규, 디렉토리, 특수파일 파일 허가권 소유권과 그룹id 하드링크 계수 수정시기 시작 블록의 위치 등 inode는 약 120byte의 고정 크기를 가지는 자료구조 디스크의 시작 부분의 특수장소에 저장됨 모든 파일은 inode를 가짐
48
INODE inode 직접 블럭 포인터 간접 포인터 블록 맵 0..9로 디스크 블럭 1024개의 블록 사용
으로 0..9로 1024개의 블록 사용 (1024 x 4KB4MB)
49
1024개의 블록 주소를 가지고 있는 1024개의 간접 블록 위치
INODE 4MB보다 큰 파일 지정을 위한 inode 구조 파일이 커지면 간접 지정의 크기를 증가시킴 직접 블럭 포인터 간접 포인터 inode 디스크 블럭 블록 으로 1024개의 간접 블록 위치 블록 주소 0..9로 1024개의 블록 주소를 가지고 있는 1024개의 간접 블록 위치 이중 간접 포인터
50
INODE 파일 시스템의 구조 부트 블럭(boot block) 슈퍼 블록(super block) inode블록 List
디스크의 첫번째 논리적 블록 유닉스가 활성화되는데 필요한 실행 코드가 존재 슈퍼 블록(super block) 디스크 자체에 대한 정보 포함 파일 시스템에 있는 총 블록 수, inode 자유 리스트 목록 수, 자유 블록 비트맵(Pg 605 그림 11.21), 블록의 크기, 자유 블록의 개수, 사용중인 블록 수 inode블록 List 사용자 블럭
51
프로세스 관리 및 스케줄 스케줄러(Scheduler) Memory Manager
프로세스가 실행될 수 있도록 커널에 의해 CPU에 할당 Memory Manager 프로세스에게 RAM을 할당
52
프로세스 관리 및 스케줄 프로그램의 소스코드가 컴파일되면 특수한 형태로 저장됨 매직 수를 포함하는 주 헤더 섹션 1의 헤더
매직 수 : 실행될 수 있는 파일의 유형 정의 매직 수를 포함하는 주 헤더 섹션 1의 헤더 섹션 2의 헤더 섹션 1 섹션 2 실행파일의 구조 코드, 데이터를 포함하는 부분들
53
프로세스 관리 및 스케줄 유닉스의 실행 초기 프로세스 PID 이름 swapper 1 init 2 pagedaemon
54
프로세스 관리 및 스케줄 Signal 프로세스 상태 Suspended Sleeping Zombified Running
Runnable Idle Signal 종료 사건대기 사건발생 초기화 CPU할당
55
프로세스 관리 및 스케줄 프로세스 구성 사용자 영역 코드 영역, 데이터 영역, 스택 영역, 사용자 영역, 페이지 테이블
프로세스들이 시그널에 어떻게 반응해야 하는지의 기록 프로세스가 연 파일 기술자의 기록 프로세스가 CPU시간을 사용한 시간 기록
56
프로세스 관리 및 스케줄 프로세스 테이블 프로세스 테이블의 항목 커널에 의해서만 접근되는 자료구조
시스템 내의 각 프로세스마다 하나의 항목을 가지는 고정된 크기의 프로세스 정보를 나타내는 테이블 프로세스 테이블의 항목 프로세스 ID, 부모 ID 실, 유효 사용자 ID, 그룹 ID 프로세스의 상태 코드, 자료, 스택, 사용자 영역의 위치 대기중인 시그널의 목록
57
프로세스 관리 및 스케줄 스케줄러 경쟁하는 프로세스들 사이에 CPU를 공정하게 사용케 조정
다중-수준 우선순위 큐 사용 (Pg 617 그림 11.30) 프로세스들의 중요도에 따라 CPU 시간이 할당됨 (기본적으로 각 프로세스들에게 부여되는 CPU시간은 1/10초) 우선순위 = 상수1/(최근 CPU사용량) + 상수2/(nice 설정)
58
프로세스 관리 및 스케줄 매초마다 우선순위 재 계산 모든 프로세스의 우선순위 재계산 매초 마다 실행
59
프로세스 관리 및 스케줄 매 1/10초마다 매 1/10초 마다 실행 큐상에서 최우선 순위 프로세스 선택
다음 중 하나가 될 때까지 실행 시간 할당량 끝 2. 잠들기 3. 시스템호출에서 복귀하고 더 높은 우선 순위가 실행할 준비중 프로세스가 아직 실행가능하면, 실행 큐의 뒤에 이 프로세스를 위치시킴 매 1/10초 마다
60
프로세스 관리 및 스케줄 매 클럭 틱 마다 매 클럭 틱 마다 현 프로세스의 클럭 틱 계수를 1 증가 4개의 틱이 모이면,
현 프로세스의 우선순위 재계산 매 클럭 틱 마다
61
질의 및 응답
Similar presentations