목록분류 전체보기 (45)
Nnnnnnnnn
Deadlocks Deadlock - 일련의 프로세스들이 서로가 가진 자원을 기다리며 block(sleep)된 상태. Resource(자원) - 하드웨어, 소프트웨어 등을 포함하는 개념 ex)I/O device, CPU cycle, memory space, semaphore등 - 프로세스가 자원을 사용하는 절차(Request, Allocate, Use, Release) Deadlock 발생 조건 - Mutual exclusion(상호배제) : 매 순간 하나의 프로세스만이 자원을 사용할 수 있다. 자원을 독점적으로 사용. - No preemption(비선점) : 프로세스는 자원을 스스로 내어놓을 뿐 강제로 빼앗기지 않는다. - Hold and wait(보유대기) : 자원을 가진 프로세스가 다른 자원을 기다..
Process Synchronization 자원에 대한 프로세스 간 경쟁에서 발생하는 제어문제 - 상호배제(mutual exclusion) process synchronization- 교착상태(deadlock)- 기아상태(starvation) starvation -> solution : aging Race Condition 다수의 프로세스나 스레드가 공유자원을 동시에 읽거나 쓰려고 하는 상태 Race condition이 발생하면, 최종 수행 결과는 프로세스들의 수행 순서에 따라 달라진다. OS에서 race condition은 언제 발생하는가? 1. Kernel 수행 중 인터럽트 발생 시 커널모드 running 중 interrupt가 발생하여 인터럽트 처리루틴이 수행 - 양쪽 다 커널 코드이므로 kerne..
CPU Scheduling 여러 종류의 job(=process)이 섞여 있기 때문에, CPU 스케줄링 필요. Interactive job에게 적절한 response 제공 요망.(I/O가 자주 끼어듬.) CPU와 I/O 장치 등 시스템 자원을 골고루 효율적으로 사용. CPU bound job이 한번 점유하면 다른 job이 사용 x CPU를 공평하게 주는 것이 아니라 효율성이 중요하다. I/O bound job 오래 기다리지 않게 하는 것이 중요하다. - I/O-bound process CPU를 잡고 계산하는 시간보다 I/O에 많은 시간이 필요한 job many short CPU bursts ex) 사용자와 친한 마우스 클릭을 예로 들 수 있다.(interactive job). 빈도가 짧아 왔다갔다 하는거지..
Process Management 프로세스 생성 - 부모 프로세스가 자식 프로세스 생성. OS가 할일인데 바빠서 부모가 알아서 process를 생성한다.- 프로세스의 트리(계층 구조)형성- 프로세스는 자원을 필요로 함 : 운영체제로 부터 받는다. 부모와 공유한다.- 자원의 공유 : 부모와 자식이 모든 자원을 공유하는 모델, 일부를 공유하는 모델, 전혀 공유하지 않는 모델.- 수행 : 부모와 자식은 공존하며 수행되는 모델. 자식이 종료될 때까지 부모가 기다리는(Wait) 모델. 주소 공간(Address Space) - 자식은 부모의 공간을 복사함(Binary and OS data) - 자식은 그 공간에 새로운 프로그램을 올림 유닉스의 예 - fork() 시스템 콜이 새로운 프로세스를 생성 : 부모를 그대로..
Process 프로세스란? 사용자가 프로그램을 실행하면 OS는 그 내용을 메모리상으로 읽어들여 처리를 실행한다. 이 메모리상에 할당된 프로그램을 프로세스라고 한다. 프로그램의 인스턴스. Process is a program in execution. 프로세스의 문맥 - CPU 수행 상태를 나타내는 하드웨어 문맥 Program Counter - 다음에 program 실행할 주소를 알려줌 각종 register - 프로세스의 주소 공간 ( A가 할당되면 프로세스A의 주소공간이 할당된다.) stack, data, code code 중(함수) 하나쓰면 stack에 올라간다. A가 할당되어 register로 가서 일하고(ALU), 다시 register로 돌아와 memory로 빠진다.(현 상태 저장을 위해). - 프로..
컴퓨터 시스템의 구조 Mode bit 사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위한 보호 장치가 필요하다. Mode bit를 통해 하드웨어적으로 두 가지 모드의 operation을 지원한다. 사용자 프로그램을 수행하는 사용자 모드(제한된 instruction만 실행)와, OS 코드를 수행하는 모니터 모드이다. 모니터 모드는 커널 모드, 시스템 모드와 같은 의미이다. 보안을 해칠 수 있는 중요한 명령어는 모니터 모드에서만 수행 가능한 특권 명령으로 규정한다. interrupt나 Exception 발생 시 하드웨어가 mode bit를 0으로 바꾼다. 사용자 프로그램에게 CPU를 넘기기 전에 mode bit를 1로 세팅한다. Timer 정해진 시간이 흐른 뒤 운영..
컴퓨터 시스템의 구조 CPU는 매우 빠르다. 그러나 I/O device 일을 하지는 않는다. 메모리 안의 일만 한다. 사용자프로그램은 외부에 대한 권한이 없다. 그래서 OS에게 권한을 주고, OS가 Device controller로 부터 가져와 Memory에 올린다. A가 쓴 후 OS에 다시 넘겨야 하는데, 또 권한이 없다. 이때 Interrupt line이 가능하게 해준다. OS가 A에게 Timer로 몇 초동안 사용할 수 있게끔 한 뒤, 초가 지나고 OS에게 다시 권한을 넘긴다. CPU가(먼저 하던일 끝내고 Timer를 통해 중간중간 Interrupt를 건다. Mode bit는 CPU에 OS인지, A인지를 0, 1로 저장한다.(보안상 mode bit로) Memory는 CPU에서 하는 일을 저장하고 있다..
운영체제 CPU 는 외부에서 정보를 입력받아 기억, 명령을 해석하여 외부로 출력한다. 커널은 사용자의 조직을 처리하여 OS가 움직일 수 있도록 하는 OS의 핵심부분이다. 쉘은 사용자의 지시를 해석해서 전달하는 것으로 화면에 보이는 사용자 인터페이스이다. 미들웨어는 운영체제와 어플리케이션 사이에서 데이터를 주고받을 수 있도록 중개하는 소프트웨어이고, API는 OS나 프로그래밍 언어가 제공하는 기능을 어플리케이션에서 사용할 수 있도록 만든 인터페이스이다. 운영체제란? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층이다. 좁은 의미로는 커널이며, 커널은 운영체제의 핵심 부분으로 메모리에 상주하는 부분이다. 넓은 의미로는 커널 뿐 아니라 각종 주변 시스템..