선점형과 비선점형 스케쥴러 비선점형 프로세스가 자발적으로 blocking상태로 들어가거나, 실행이 끝났을 때만, 다른 프로세스로 교체 가능 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음 예) A가 프로세스가 자체적으로 running이 아니어야만(Block 혹은 종료 혹은 ready 상태) B 프로세스가 실행되는 것. 선점형 프로세스 running 중에 스케쥴러가 이를 중단시키고, 다른 프로세스로 교체 가능 하나의 프로세스가 다른 프로세스 대신에 CPU를 차지할 수 있음. 스케쥴러 실행이 프로세스 스테이트에 영향 받지 않음. 이전 프로세스 중단 및 다음 프로세스 실행 기준에 고려할게 많기 때문에 비선점형보다 이후에 나옴. 예) A 프로세서가 스케쥴러에 의해 실행될 때, 어느 시점..
프로세스 상태와 스케쥴러 멀티 프로그래밍 : CPU 활용도를 극대화하는 스케쥴링 알고리즘 Wait: 간단히 저장매체로부터 파일 읽기를 기다리는 시간으로 가정 프로세스 상태 5가지 주요 상태 정보 3가지 ready state : CPU에서 바로 실행가능 상태(실행 대기 상태) running state : 현재 CPU에서 실행상태 => 단일 CPU라면, running state의 프로세스는 1개 또는 0개가 된다. block state : 특정 이벤트 발생 대기 상태(예: 프린팅이 다 되었다!) => waite 상태로 예를 들어 파일 읽기 요청을 기다리는 상태임. 요청이 오면 ready state로 변경됨. new : 프로세스 생성 중 exit : 종료를 진행할때, 프로세스가 가지고 있는 파일, 시스템 리소..
프로세스(process)란? 실행중인 프로그램을 프로세스라고 부른다. 프로세스 : 메모리에 올려져서, 실행중인 프로그램 코드이미지(바이너리): 실행파일, 예:EELF format프로세스라는 용어는 작업, task, job이라는 용어와 혼용되어 쓰인다. 응용 프로그램 =! 프로세스 응용 프로그램은 여러개의 프로세스로 이루어질 수 있음. 하나의 응용 프로그램은 여러개의 프로세스(프로그램)가 상호작용을 하면서 실행될 수 도 있음 간단한 C/C+ 프로그램을 만든다면 -> 하나의 프로세스 여러프로그램을 만들어서, 서로 통신하면서 프로그램을 작성할수도 있음(IPC기법 : 프로세스가 서로 통신하는 기법) 누가 프로세스 실행을 관리할까? => 스케쥴러 스케쥴링 알고리즘 어느 순서대로 프로세스를 실행시킬까? 목표 시분할..
스케쥴링-멀티 프로그래밍 최대한 CPU를 많이 활용하도록 하는 시스템 놀고있는 CPU를 방지하여 시간 대비 CPU 활용도를 높일 수 있음 응용프로그램을 짧은 시간안에 실행 완료를 시킬 수 있음. 응용 프로그램은 온전히 CPU를 쓰기 보다, 다른 작업을 중간에 필요로하는 경우가 많습니다. 응용 프로그램이 실행되다가 파일을 읽는다. => 저장매체에서 파일을 읽음 응용 프로그램이 실행되다가 프린팅을 한다. 코드예시를 보고 멀티프로그래밍을 더 잘 이해해보자. 저장매체에서 해당 파일이 open이 가능한지의 결과값을 가져와야 그 다음 코드를 실행 시킬 수 있음. CPU 활용도(CPU utilization, CPU 활용시간/일정시간 * 100) 메모리 계층 - 컴퓨터 구조 복습 응용프로그램이 파일에 접근을 해야할 때..
프로세스 스케쥴링 배치 처리 시스템, 시분할 시스템, 멀티 태스킹 프로세스 == 응용프로그램 스케쥴링 : 기술(배치 처리 시스템, 시분할 시스템, 멀티 태스킹 등)을 사용하여 응용프로그램을 시간순서대로 CPU에 배치하는 방법 배치 처리 시스템 자료구조의 큐(Queue) 방식과 비슷. Application1실행 된후 2가 실행 - First In, First Out 프로그래밍으로 구현을 한다고하면, 자료구조 Queue 를 써야함. 여러프로그램을 순차적으로 실행시킬 수 있도록 해주세요 -> 라는 요구사항 때문에 나오게됨. but, 어떤 프로그램은 실행 시간이 너무 오래 걸려, 그만큼 다음 프로그램을 실행하는데 까지 오래 기다려야함. 실행시간이 적은 것을 알수 없으므로, 먼저 실행시킬 수 없음 음악을 들으면서..
운영체제 구조-사용자 모드와 커널 모드 이번 장에서는 System Call, OS를 집중적으로 살펴보겠습니다. CPU Protection Rings CPU는 권한모드라는 것을 가지고 있습니다. 사용자모드(user mode by application) : 일반적인 명령들을 실행하며, 응용프로그램에 의해 사용되어집니다. 커널 모드(kernel mode by OS) : 특권 명령어 실행하며, 운영체제가 원하는 작업 수행을 위해 특정 자원 접근에 가능케 하는 모드로, OS에 의해 사용되어집니다. CPU는 보통 4가지 모드(intel 기준)를 제공합니다. Ring 0~3까지 4가지가 있고, Ring 3과 0이 중요합니다. Ring 3은 사용자 모드로, application이 CPU를 사용할 때 쓰는 모드이고, R..
운영체제 구조-시스템콜 응용프로그램, 운영체제, 컴퓨터 하드웨어(시스템 리소스)관계 도서관으로 비유해보자면 운영체제는 도서관 응용프로그램은 시민 컴퓨터 하드웨어는 책이 된다. 시민은 도서관에 원하는 책(자원)을 요청하고, 도서관은 적절한 책(자원)을 찾아서, 시민에게 빌려줍니다. 시민이 기한이 다 되면, 도서관이 해당 책(자원)을 회수합니다. 운영체제는 응용프로그램이 요청하는 메모리를 허가하고, 분배한다. 운영체제는 응용프로그램이 요청하는 CPU 시간을 제공한다. 운영체제는 응용 프로그래밍이 요청하는 I/O Devices 사용을 허가/제어한다. 사용자, 응용프로그램, 운영체제, 컴퓨터 하드웨어와 관계 사용자 응용프로그램(Application) 운영체제 하드웨어 운영체제의 역할 중 하나로 운영체제는 사용자..
운영체제 큰 그림과 응용 프로그램 응용 프로그램이란? 프로그램 = 소프트웨어 소프트웨어 1.운영체제 2.응용프로그램(엑셀, 파워포인트 등등) 응용프로그램은 Application(일반 PC에서의 프로그램) = App(스마트폰의 응용프로그램)이라고 말한다. 운영체제와 응용 프로그램간의 관계 운영체제는 응용프로그램을 관리 시스템 자원을 관리 사용자와 컴퓨터간의 커뮤니케이션을 지원 운영체제의 목표 : 사용자가 사용하는 응용 프로그램이 효율적으로, 적절하게 동작하도록 지원 운영체제는 응용프로그램이 요청하는 시스템 리소스를 효율적으로 분배하고, 지원하는 소프트웨어 응용 프로그램을 실행시킨다. 응용 프로그램간의 권한을 관리해준다. 관리자 권한으로 실행 응용 프로그램을 사용하는 사용자도 관리 로그인 응용 프로그램은 누..
운영체제 역할 1 : 시스템자원 관리자의 역할 먼저 운영체제는 OS 또는 Operating System 이라고 부릅니다. 시스템 자원은(System Resource)은 '컴퓨터 하드웨어'를 지칭하며, 그 종류에는 아래와 같은 것들이 있다. CPU(중앙처리장치), Memory(DRAM, RAM) I/O Devices(입출력장치) Monitor, Mouse, Keyboard, Network 저장매체 : SSD(솔리드 스테이트 드라이브), HDD(하드 디스크 드라이브) **즉, 운영체제는 시스템 자원인 '컴퓨터 하드웨어'를 관리하는 소프트웨어라고 할 수 있다. 컴퓨터 하드웨어는 스스로 할 수 있는 것이 없습니다. CPU: 각 프로그램이 얼마나 CPU를 사용할 지를 결정할 수 는 없습니다. Memory: 각 프..