본문 바로가기

728x90
반응형

KNU_study/운영체제

운영체제(12) Kernel Mode Programming & Device drive 1. Kernel mode and User mode (1) LMSW, SMSW : 현재 프로세서의 머신 상태 워드(machine status word)를 로드/ 저장. (2) MOV DBn, MOV CRn : 디버그 레지스터/ 컨트롤 레지스터를 이동. (3) LSL : 세그먼트 제한값(segment LImit)을 로드. (4) HLT : Halt, 프로세서를 중지. 실행 시 프로세서는 멈추고 대기 상태가 된다. -> 메모리의 모든 위치에 액세스, 수정할 수 있다. -> CPU 및 장치의 모든 레지스터에 액세스하고 수정할 수 있다. -> OS 커널 명령은 커널 모드에서 실행된다. -> CPU는 제한된 명령 집합을 사용한다. -> CPU는 (프로그램을 실행하는) 프로세스에 할당된 메모리 구역만 수정할 수 있.. 더보기
운영체제(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.. 더보기

728x90
반응형