본문 바로가기

728x90
반응형

KNU_study

운영체제(11) Device Management 이 단원은 device driver, polling와 I/O interrupt 그리고 DMA를 확실히 알고 넘어가자 ! 1. Input/Output Devices input, output device에 관하여.. (1) 데이터 세분성 : Byte vs Block 일부 장치는 한 번에 단일 바이트(ex, 키보드)를 제공한다. 전체 블록(ex, 디스크나 네트워크 등)을 제공하는 기업도 존재한다. (2) 액세스 패턴 : Sequentail vs Random 일부 장치는 순자척으로 액세스해야 한다. (ex, tape) 다른 장치는 임의로 액세스할 수 있다. (ex, 디스크, CD 등) -> 전송을 시작하기 위한 고정 오버헤드 : 지속적인 모니터링이 필요한 장치 존재, ~~ (3) 전송 매커니즘 : Program.. 더보기
운영체제(10) Storage(File) Management 1. File File : 데이터를 영구적으로 저장하고 유지할 수 있는 중요한 개념이다. Contiguous logical address space, 영구 저장 장치. Name : 사용자가 읽을 수 있는 형식으로 보관된 정보만 제공된다. Type : 다양한 유형을 지원하는 시스템에 필요하다. Location : device의 파일 위치에 대한 포인터. Size : 현재 파일 크기. Protection : 읽기, 쓰기, 실행을 수행할 수 있는 사용자를 제어한다. Time, data and user identification : 보호, 보안 및 사용 모니터링을 위한 데이터 -> file에 대한 정보는 디스크에 유지되는 디렉토리 구조에 보관된다. (1) ls -la : 디렉토리(폴더) 내의 파일과 디렉토리를 .. 더보기
운영체제(9) Virtual memory 1. Review (1) virtual memory management를 하는 이유? locality(지역성) 때문에. 한정된 메모리의 효율적인 사용 구현의 효율성(overhead가 안 생기게 등) (2) Paiging : virtual memory와 physical memory의 size를 같게 해서 효율적으로 관리하는 기법. (3) Thread of control 모든 프로그램이 무조건 main memory에 올라올 필요는 없다. (물론 main memory에 올라와야만 수행된다.) 그러므로 program 중 일부만 main memory에 올리자. (4) single CPU에서 multitasking을 하는 이유는? I/O에 시간을 많이 사용하기 위해. 2. Hardware and Control St.. 더보기
운영체제(8) Main memory 1. Memory manager -> Minimize executable memory access time(실행 가능한 메모리 엑세스 시간 최소화) -> Maximize executable memory size(실행 메모리 크기 최대화) -> Executable memory must be cost-effective(메모리는 비용 효율적이어야 함) 더보기
운영체제(7) Deadlock 1. Define Dependencies [프로세스들이 Lock을 얻기 위해 요청한] 자원들의 의존성 관계. 즉 프로세스가 어떤 자원을 요청할 때 그 자원이 이미 다른 프로세스에 의해 사용 중이라면, 해당 프로세스는 그 자원을 사용하기 위해 먼저 그 자원을 소유한 프로세스가 완료될 때까지 대기한다. -> 이러한 의존성 관계들이 꼬이게 되면 데드락이 발생할 수 있다. -> 프로세스 A, B가 각각 자원 X와 Y를 요청하고 A는 X를, B는 Y를 소유하고 있다면 서로의 자원을 사용하기 위해 두 프로세스 모두 대기하는 상황이 발생한다. -> OS에서는 데드락을 예방하기 위해 Lock을 얻는 순서나 우선순위를 지정, Lock 강제 해제 등을 할 수 있다. 2. Deadlock (system resource를 경.. 더보기
운영체제(6-2) IPC part 1. interprocess communication(IPC) and Synchronization Process Synchronization -> Semaphores(UNIX) Thread Synchronization -> mutexes, Semaphores 프로세스 간 통신, 프로세스들끼리 서로 데이터를 주고받는 행위 또는 그에 대한 방법을 의미한다. 프로세스는 완전히 독립된 실행객체다. 서로 영향을 받지 않는다는 장점도 있지만, 서로 간의 통신이 어렵다. -> 커널 영역에서 IPC라는 내부 프로세스간 통신을 제공, 프로세스끼리 IPC설비를 이용하여 통신 가능하다. 여러 프로세스가 동일한 "프로그램"의 일부인 경우가 많다. -> 그들을 조정할 필요가 있다 !! Shared memory : 프로세스끼리 .. 더보기
운영체제(6) Synchronization Tools & Examples 1. 용어 정리 여러 CPU가 공유자원에 접근할 때 프로세스 또는 스레드가 동시에 엑세스하지 않도록 하기 위해, 동시성 제어와 데이터 무결성을 보장하기 위해, 다른 프로세스 또는 스레드가 해당 데이터를 변경할 수 없는 상태로 보호하는 연산이다. -> 특정 시기, critical section 시기에는 오직 1개의 스레드만 관여한다. -> 하나 이상의 명령 시퀀스로 구현된 기능 또는 동작이다. 즉, 다른 프로세스는 중간 상태를 보거나 작업을 중단할 수 없다. -> 명령 시퀀스는 그룹으로 실행 or 전혀 실행되지 않으며 시스템 상태에 가시적인 영향을 미치지 않는다. -> good 출처 : https://eunjinii.tistory.com/160 공유 자원에 대한 권한이 필요하고 다른 프로세스가 해당 sec.. 더보기
운영체제(5) CPU Scheduling 1. real time OS와 general purpose OS 기억할 때까지 복습하자 .. (1) real time OS : 응용 프로그램의 실시간 성능 보장을 목표로 하는 OS -> 정확하게 프로그램의 시작, 완료 시간을 보장한다. 공정에 주로 쓰인다. -> (ex) Hardware RTOS, Software RTOS (2) general purpose OS : 프로세스 실행시간에 민감하지 않고, 일반적 목적으로 사용되는 OS 2. Scheduling "누가 CPU를 사용할 것인가" -> 멀티 프로그래밍을 통해 얻은 최대 CPU 활용률 -> CPU burst followed by I/O burst CPU burst가 주요 문제이다. I/O burst : I/O를 요청한 다음 기다리는 시간 CPU bu.. 더보기

728x90
반응형