4. Concurrency 1. Thread 2. Lock 3. Condition Variable 4. Semaphore 5. Common Concurrency Problems 1. Thread - 개념 독립된 객체로 프로그램 내에서 독립적으로 생성, 실행되어 프로그램 대신 작업 수행 하나의 프로세스 안에 thread들은 주소공간을 공유하여 동일한 값에 접근 가능 각 thread는 자신의 상태를 나타내는 PC, 레지스터들을 가지고 있으며 문맥교환시 이를 TCB에 저장 프로세스와 달리 쓰레드 간의 문맥 교환시 주소 공간을 그대로 사용 쓰레드마다 스택이 할당된다 - 쓰레드 장점 parallelism : 여러 cpu에 각각 쓰레드를 동작하게 함으로써 프로그램의 성능 향상 멀티 쓰레드를 통해 하나의 프로그램 안에서 I/O 작업과 다른 작.. 2020. 7. 19. 3. Virtualizing Memory 1. Address Space 2. Base-and-Bound 3. Segmentation 4. Paging 5. 물리메모리 크기 극복 1. Address Space - 정의 실행중인 프로세스가 가정하는 선형적인 메모리의 모습. 실제로는 임의의 물리주소에 산재되어 탑재되어 있다 address space는 실행 프로그램의 모든 메모리 상태를 갖는다 : code, stack, heap - virtualizing memory, VM, 메모리 가상화 프로세스로 하여금 자신이 특정주소의 메모리에 탑재되고 자신만의 address space를 가지고 있다는 환상을 만드는 것 VM의 목표 1 : transparency -> 프로그램은 메모리가 가상화되었다는 사실을 인지해서는 안된다 VM의 목표 2 : efficienc.. 2020. 7. 19. 2. Virtualizing CPU 1. Process 2. Virtualizing CPU 3. Limited Direct Execution 4. Scheduling 1. Process - 정의 : 실행 중인 프로그램 - 프로세스 API : OS가 제공하는 API a) create : 프로세스 생성 b) destroy : 프로세스 제거 c) wait : 프로세스를 대기 시킴 d) miscellaneous control : 프로세스 재개와 같은 프로세스 제거, 대기 이외의 기능 e) status : 프로세스 상태 정보를 알아냄 - 프로세스 상태 a) running : 프로세서에서 프로세스 실행중 b) ready : 프로세스는 실행할 준비가 되어 있지만 다른 프로세스가 실행중이므로 대기 c) blocked ; 프로세스의 수행이 중단 2. Vi.. 2020. 7. 19. 1. Introduction to OS 1. System Software 2. Operating System 1. System Software - 정의 : 시스템 전체를 작동시키는 프로그램, 프로그램을 주기억장치에 적재시키거나 인터럽트 관리, 언어 번역 등의 기능 수행한다. 운영체지는 대표적인 시스템 프로그램. - 시스템 소프트웨어 구성 a) control program, 제어 프로그램 : 시스템 전체의 작동 상태 감시, 작업의 순서 지정, 작업에 사용되는 데이터 및 자원 관리등의 기능 수행 b) processing program, 처리 프로그램 : 제어 프로그램의 지시를 받아 사용자가 요구한 문제를 해결하기 위한 프로그램 2. Operating System - 정의 : 사용자와 하드웨어간 인터페이스로써 시스템을 사용하기 편리하고 정확하고 올.. 2020. 7. 19. 이전 1 다음