
computer를 운영하는 소프트웨어computer란? information을 처리하는 기계정보의 최소 단위 bit(binary digit) 0과 1로 구성.정보의 처리: 정보의 상태 변환 (0<->1)이를 Boolean Algebra(NOT,AND,OR)로 처리

computer hardware를 관리하는 소프트웨어App과 hardware 사이에 중간매개의 역할을 수행한다.hardwareosappuserrunning at all times인 programcalled kernelkernel에서 system programs, app

OS의 작업의 실행 단위CPU time, memory, files, I/O devices가 필요로 한다.memory에 load된 프로그램 = 프로세스load가 된 후, cpu에 처리를 해줘야 작동.Text section : 실행가능한 코드Data section : 전역

Program이 Ram에 로드가 된 상태 = 프로세스Program register + Program counter + process statae,resources = PCBCPU가 PCB를 처리하며, PCB가 switch -> context switchtimeshari

independently: 메모리 영역이 서로 분리되어서 작동한다.(공유하는 데이터가 없다)cooperating: 서로 간섭을 받는다.(공유하는 데이터가 존재한다.)Cooperating system은 IPC 메커니즘이 필요한데, data를 주고받는다.shared mem

Shared Memory( POSIX Shared Memory )OS의 표준화Message Passing( Pipes )UNIXusing memory-mapped files which associate the region of shared memory with a fi

메모리에 여러 process가 로드된 상태에서 cpu가 concurrent하게 context switch를 해서 처리한다.프로세스 내 Thread id가 cpu를 점유한다.( program counter, register set, stack도 thread ID별 달라야

userJVM은 OS의 core를 마음대로 할당받을 수 없다.이와 같은 애플리케이션을 user thread라고 한다.( 참고로, native thread가 커널을 이용한다. )kernel support 없이 실행kernelcore를 직접 제어를 한다 -> kernel

CPU의 사용률을 극대화를 하기 위해서 사용.Read/Write file -> CPU burst( running )wait for I/O -> I/O burst( waiting,ready )대다수 I/O burst가 더 많다.ready상태 프로세스 중 누구한테 CPU를

waiting time을 줄일 수 있다.그런데 구현을 할 수 없다.next CPU burst time을 절대 알 수 없다.(예측불가)그래서 next CPU burst를 예측.과거에 CPU burst로 예측을 한다.( 지수적으로 )만약 현재 실행중인 프로세스에서 더 짧은

shared a logical address space(thread) or share data(shared memory, mmap)process간 interrupte에 의해서 context switch가 발생해서 instruction stream이 끊어진다.increm

guarantee가 없다.2개의 process가 critical section과 remainder section을 왔다갔다 거림.turn값을 switch를 해서 2개의 process중 누가 실행이 되어야 하는지 알려준다.따라서 기계어로 이해를 해야한다.while문이 있

실제로는 피터슨이나 하드웨어단의 동기화 관리를 직접할 수 없다.mutex = mutual exclustionprotect critical section & prevent race condition( 1개의 열쇠를 주고 받음 )아래와 같은 과정을 거친다.acquire l

Mutex와 semaphores가 현실적으로 적용하기 힘들다.실행 sequence가 꼬이면, error가 발생한다.반드시 wait(acquire) -> signal(release)을 지켜야한다.반드시 wait -> signal의 순서를 지켜야 한다.low level아니

n개의 버퍼에는 1개의 item이 존재하고,consumer는 buffer에서 item을 가져오고, producer는 buffer를 채운다.mutex를 1로 설정해서 binary semaphore로 한다.( mutex를 준수 )empty는 줄어들고, full은 늘어난다.

집합 내 어떤 프로세스가 동일 집합 내 다른 프로세스의 작업이 끝나기를 기다리는 상태waiting thread가 상태를 못바꾸며, 그 이유는 다른 waiting thread에 의해서 리소스가 점유되었기 때문이다.동일 instance가 여러개이다.do_work_onelo

A process is program in execution(main mememory에 있는 명령어의 집합)A memeory = a large array of bytes, which is its own addressCPU는 PC를 이용해서 메모리에서 명령어를 fetch

현실적으로 연속적인 프로그램(명령어의 집합)을 할당할 수 없다.그래서,물리적인 주소 공간을 연속적이지 않은 것으로 간주외부 단편화 방지하나의 압축 파일로 안해도 됨.물리적인 메모리를 고정된 크기의 block으로 쪼갠다.(frame)논리적인 주소를 고정된 크기의 bloc

물리적인 메모리보다 더 큰 용량의 프로세스를 실행할 수 있다.물리메모리로도 부족하다면, backing store(HDD)에 저장을 한다.text : 코드 영역data : 전역 변수heap : 런타임 stack : 매개변수, 로컬변수, 함수공유 페이지에다 공유 라이브러리

가정 40 frames(물리메모리) 6 processes + 10 pages프로세스당 10개의 페이지를 할당받는다.한 프로세스당 5개의 페이지만 필요하다그래서 10가 남을 정도로 가동이 되는데, 만약 큰 메모리 버퍼에 의해서 over-allocationg이라면???1

seek time을 줄이는데 집중을 해야한다.FIFO SchedulingSCAN SchedulingC-SCAN(Circular-SCAN) Scheduling( 단방향으로 Scan을 한다. 만약 되돌아갈 일이 있으면, 처음부터 돌아가서 다시 읽는다. )데이터를 READ/

information(data,code), physical resources를 사용할 수 있도록 인증(authentication)권한에 맞게(authorization, 인가) 리소스에 접근접근 제한중간에 가로채서 사기를 친다.결국 암호화를 해야한다.ciphertext