인천대학교 컴퓨터공학과 성미영 Chapter 1.4 서론 ( 핵심 ) 1.1 OS 정의 1.2 컴퓨터 시스템 구조 (Architecture) 1.3 컴퓨터 시스템 동작 (Operations) 1.4 OS 핵심 프로세스 관리 (Process Management) 메모리 관리 (Memory Management) 저장장치 관리 (Storage Management) 보호와 보안 (Protection and Security) 1.5 컴퓨팅 환경
인천대학교 컴퓨터공학과 성미영 프로세스 관리 (Process Management) Process(active entity ) 는 실행 중인 Program(passive entity): 작업의 단위 Process 는 작업 수행 위해 자원을 필요로 함 : CPU, memory, I/O, files, data Process 는 종료되면 재사용 가능한 자원을 반환 Single-threaded process 는 실행할 다음 명령 (instruction) 의 위치를 가리키는 program counter(PC) 를 한 개 가짐 Multi-threaded process 는 thread 마다 하나의 program counter(PC) 가짐 일반적으로 시스템에는 하나 또는 다수의 CPU 상에서 다수의 process 들 (user processes, OS processes) 이 동시에 실행됨 CPU 다중화 (multiplexing) 로 process/thread 동시성 (concurrency) 유지 OS 의 프로세스 관리 활동 사용자 프로세스와 시스템 프로세스의 생성과 삭제 프로세스의 일시 중지와 재수행 프로세스 동기화를 위한 기법 제공 프로세스 통신을 위한 기법 제공 교착상태 처리를 위한 기법 제공 운영체제
인천대학교 컴퓨터공학과 성미영 메모리 관리 (Memory Management) 모든 data 는 processing 되기 전후에 memory 에 존재해야 함 존 폰 노이만 (Jon Von Neumann) 프로그램 내장 (stored program) 방식 Memory 에 있는 모든 instructions 들은 순서대로 실행됨 메모리 관리는 메모리에 있어야 할 것을 결정하는 작업임 CPU 활용과 사용자 응답을 최적화 할 수 있도록 OS 의 메모리 관리 활동 메모리의 어느 부분이 현재 사용되고 있으며 누구에 의해 사용되고 있는지를 추적 어떤 프로세스 ( 또는 그 일부 ) 들을 메모리에 적재하고 제거할 것인가를 결정 필요에 따라 메모리 공간을 할당 (allocating) 하고 회수 (deallocating)
인천대학교 컴퓨터공학과 성미영 파일 시스템 관리 (File System Management) OS 는 저장된 정보에 대해 일관성 있고 논리적인 관점을 제공 저장장치의 물리적 특성을 논리적인 저장단위로 추상화 - file 각 매체 (i.e., magnetic disk, optical disk) 는 전용 장치 드라이브 (i.e., disk drive, tape drive) 에 의해 제어됨 속성 : 접근속도 (access speed), 용량 (capacity), 전송률 (data- transfer rate), 접근방식 (access method; sequential or random) OS 의 파일 시스템 관리 파일은 통상 디렉토리로 구성 다수 사용자가 파일에 접근할 때는 누구에 의해, 어떤 방법으로 접근될 수 있는지의 제어가 바람직 파일 관리 활동 파일과 디렉토리 생성 및 제거 파일과 디렉토리 조작을 위한 프리미티브 제공 파일을 보조 저장장치로 사상 안전한 (non-volatile) 저장장치에 백업
인천대학교 컴퓨터공학과 성미영 대용량 저장장치 관리 (Storage Management) Disk 는 메모리에 담을 수 없는 data 를 영구적으로 저장 Disk subsystem 과 관련 algorithm 들이 시스템 전체의 속도에 영향을 줌 OS 의 대용량 저장장치 관리 활동 자유공간 (free-space) 관리 저장장치 할당 디스크 스케줄링 3 차 저장장치 (tertiary storage) optical storage(CD, DVD), magnetic tape WORM (write-once, read-many-times), RW (read-write) 형식 등 다양 백업용, 시스템 성능에 영향을 주지 않으나 여전히 OS 의 관리 필요 (mount, umount, allocation, deallocation, etc.)
인천대학교 컴퓨터공학과 성미영 운영체제 캐싱 (Caching) 컴퓨터 시스템의 어러 계층에서 수행되는 중요 개념 ( 하드웨어, OS, 소프트웨어 ) 사용 가능성이 많은 자료를 느린 저장장치로부터 빠른 임시 저장장소 (cache) 로 복사 ( 예 ) index register(a high-speedcache for main memory) ( 예 ) main memory(a last cache for secondary storage) 빠른 저장장소 (cache) 에 정보가 존재하는지 검사 있으면, 즉시 cache(fast) 에서 정보 사용 없으면, memory access 하여 cache(fast) 로 정보 복사 후 사용 cache 는 캐시해오는 저장장소보다 크기가 작음 캐시 관리는 중요한 설계 문제 캐시 사이즈와 교체 정책 (replacement policy) 이 중요 응집성과 일관성 (Coherency and Consistency) multitasking: variable copy 들의 coherency 문제 multiprocessor: local cache 들의 coherency 문제 distributed system 에서의 coherency 문제 : file copy 들 + local cache 들의 coherency 문제
인천대학교 컴퓨터공학과 성미영 저장장치 계층 ( Storage-Device Hierarchy) 운영체제 SSD: Solid State Disk ( 순수 전자식, non-volatile flash memory) Hard Disk ( 기계식 + 전자기식, non-volatile) 속도 (speed) 비용 (cost) 휘발성 (volatility) DRAM : Dynamic Random Access Memory ( 순수 전자식, volatile)
인천대학교 컴퓨터공학과 성미영 운영체제 저장장치의 성능 CMOS: complementary metal oxide semiconductor SRAM: static random access memory DRAM: dynamic random access memory
인천대학교 컴퓨터공학과 성미영 운영체제 Integer A 의 Disk 에서 Register 로의 이동 A=5 (process1) A++ (process2) A-- Multitasking 환경에서는 process 들이 가장 최신의 데이터를 사용할 수 있게 해야 함 데이터의 여러 복사본이 실행 중인 여러 task(process) 의 register 에 존재할 수 있음
인천대학교 컴퓨터공학과 성미영 운영체제 Integer A 의 Disk 에서 Register 로의 이동 Multiprocessor 환경에서는 CPU 가 최신의 cache 데이터를 사용할 수 있도록 캐시 일관성 (cache coherency) 을 제공해야 함 데이터의 여러 복사본이 여러 processor 의 local cache 에 존재할 수 있음 A=5 (process1) A++ (process2) A-- A=5 (process1) A++ (process2) A--
인천대학교 컴퓨터공학과 성미영 운영체제 Integer A 의 Disk 에서 Register 로의 이동 Distributed 환경에서는 일관성 (coherency) 문제가 더욱 더 복잡해짐 (17 장 참조 ) 파일의 복사본이 여러 컴퓨터에 존재할 수 있음 데이터의 여러 복사본이 각 컴퓨터의 local cache 에도 존재할 수 있음 바로 쓰기 (write-through), 나중에 쓰기 (write-back,=delayed-write) 등 cache update 정책 client-initiated, server-initiated 등 캐시 유효성 검증 (cache validity) 방법들 A=5 (process1) A++ (process2) A-- A=5 (process1) A++ (process2) A-- A=5 (process1) A++ (process2) A-- A=5
인천대학교 컴퓨터공학과 성미영 입출력 시스템 (I/O Systems) OS 의 목적 중 하나는 사용자로부터 특정 하드웨어 장치의 특성을 숨기는 것 I/O subsystem 구성 buffering( 전송되는 데이터를 일시적으로 저장 ), caching( 성능을 위해 데이터의 일부를 빠른 기억장치에 저장 ), spooling( 한 작업의 출력을 다른 작업의 입력과 중복 ) 을 포함한 메모리 관리 구성 요소 일반적인 장치 드라이버 인터페이스 특정 하드웨어 장치들을 위한 드라이버 그림 (I/O 수행을 위한 시스템 호출의 사용 ) 참조
인천대학교 컴퓨터공학과 성미영 I/O 수행을 위한 시스템 호출의 사용 운영체제
인천대학교 컴퓨터공학과 성미영 보호와 보안 (Protection and Security) Protection – 컴퓨터 시스템의 시스템 자원 (resource) 에 대해 프로세스 또는 사용자의 접근을 제어하는 기법 Security – 컴퓨터 시스템의 시스템 접근 (access) 에 대한 내부공격 ( 부적절한 접근 ) 또는 외부공격 ( 인증정보의 도난 ) 을 방어 ( 예 ) 서비스 거부 (denial-of-service), 웜 (worms), 바이러스 (viruses), 식별자 도용 (identity theft), 서비스 도용 (theft of service) 시스템은 우선 사용자를 식별하고 나서, 누가 무슨 일을 할 수 있는지 결정 사용자 식별자 (user IDs, security IDs) 는 이름과 연관된 번호를 포함하며 사용자마다 할당 접근제어를 위해 user ID 는 그 사용자의 모든 파일과 프로세스에 연관되어 접근 제어 그룹 식별자 (group ID) 는 사용자 그룹을 정의하며 파일과 프로세스에 연관되어 접근 제어 유효 사용자 식별자 (effective user ID) 를 이용하여 권한 확대 (privilege escalation)
인천대학교 컴퓨터공학과 성미영 (9 th new) 커널 자료 구조 (Kernel Data Structures) 커널 기본 자료 구조 : 배열, 리스트, 스택, 큐, Singly linked list Doubly linked list Circular linked list
인천대학교 컴퓨터공학과 성미영 (9 th new) 커널 자료 구조 (Kernel Data Structures) Binary search tree left <= right –Search performance is O(n) –Balanced binary search tree is O(log n)
인천대학교 컴퓨터공학과 성미영 (9 th new) 커널 자료 구조 (Kernel Data Structures) Hash function can create a hash map Bitmap – string of n binary digits representing the status of n items Linux data structures defined in include files,,