Apple is Apple
article thumbnail
[OS] 7 - CPU scheduling (2)
CS/OS 2024. 8. 27. 16:54

CPU Scheduling 알고리즘을 살펴보자FCFS (First-Come, First-Served) schedulingSJF (Short-Job-First) schedulingPriority schedulingRR (Round-Robin) schedulingMultiLevel Queue schedulingMultiLevel Feedback Queue scheduling* 이 글에서 쓰이는 Burst time은 프로세스의 실행시간을 뜻한다.FCFS (First-Come, First-Served)** Nonpreemptive 방식으로 동작 말그대로 먼저 들어온 프로세스가 먼저 처리 되는것을 뜻한다. ex)다음과 같이 3개의 프로세스와 Burst Time이 주어진다. P1은 0에 들어와 24만큼 수행하고 종..

[OS] 6 - CPU Scheduling (1)
CS/OS 2024. 8. 23. 22:40

ConceptCPU 스케줄링은 CPU의 효율을 최대화하기 위해 사용되는 개념이다.CPU를 끊임없이 사용해야 CPU의 효율이 오르기에 메모리에 여러개의 프로세스를 동시에 올려 필요할 때 마다 CPU에 할당을 하게 된다. 이때 어떤 프로세스 결정하는 것이 CPU 스케줄링이다. CPU SchedulerCPU scheduler는 CPU 스케줄링 중 어떤 프로세스를 골라서 CPU에 할당을 할 것인지를 정하는 요소이다.스케줄러는 다음와 같은 상황에서 동작을 한다.프로세스가 Running 상태에서 Waiting 상태로 바뀔 떄 (ex. I/O 요청)프로세스가 Running 상태에서 Ready 상태로 바뀔 떄 (ex. 인터럽트)프로세스가 Waiting 상태에서 Ready 상태로 바뀔 떄 (ex. I/O 완료)프로세스 ..

article thumbnail
[OS] 5 - Thread
CS/OS 2024. 8. 6. 15:42

Thread 정리CPU의 기본 사용 단위이다.쓰레드 ID, 프로그램 카운터, 레지스터 셋, 스택을 포함하고 있다.모든 프로세스에는 한 개 이상의 쓰레드를 갖고 있으며, 같은 프로세스 동안에는 서로 다른 쓰레드들이 자원을 공유한다. 사용되는 이유  - 현대의 프로그램은 멀티쓰레드 기반 - 프로세스 생성은 무거운 작업이지만 쓰레드 생성은 가벼운 작업 - 코드 작성이 간단해 효율성이 좋음 - 커널은 보통 멀티쓰레드를 사용 중  멀티 쓰레드의 장점반응성사용자 인터페이스에 중요한 프로세스의 일부가 차단된 경우 지속적인 실행을 허용할 수 있음자원 공유 스레드는 프로세스 리소스를 공유하며, 공유 메모리나 메시지 전달보다 쉬움경제성프로세스 생성보다 적은 가격이 들어가고, 쓰레드 스위칭 하는데 생기는 오버헤드가 컨텍스트..

article thumbnail
[OS] 4 - 프로세스 간 통신
CS/OS 2024. 7. 20. 13:11

프로세스 간 통신 (Inter-Process Comunication - IPC)시스템의 프로세스는 독립적으로 동작하거나 협력적으로 동작한다.협력적으로 동작하는 것에 주목해보자, 혼자서 동작해도 문제가 없지만 왜 협력적으로 동작하는 걸까?다음과 같은 장점이 있어 협력적으로 동작하게 된다.정보 공유계산 속도의 향상편의성이러한 장점을 살리기 위해 프로세스는 협력적으로 동작하는데, 그러기 위해서는 데이터를 주고 받아야 한다. 어떻게 데이터를 주고 받아야 하나?--> IPC (Inter-Process Communication)을 통해 프로세스 사이에서 데이터를 주고 받는다. IPC에는 크게 2가지 모델이 있다.Shared Memory - 한 메모리를 공유해서 메모리를 통해 정보 공유Message Passing -..

article thumbnail
[OS] 3 - 프로세스
CS/OS 2024. 6. 21. 16:41

프로세스프로세스란?실행중인 프로그램을 뜻한다.다음과 같은 것들을 갖고 있다코드 영역 (Text Section)프로그램 카운터(PC)스택 영역힙 영역데이터 영역프로세스는 2가지의 종류로 나타내어진다I/O Bound Process - I/O 작업을 하는데 더 많은 시간을 쓰는 프로세스CPU Bound Process - 계산 작업을 하는데 더 많은 시간을 쓰는 프로세스프로세스 상태프로세스의 시작으로부터 끝날 때까지 고유의 상태가 존재한다. New: 프로세스가 생성됨Running:  프로그램내의 명령어들이 실행 중Waiting: 프로세스가 어떤 이벤트의 발생에 의해 대기 중임Ready: 프로세스가 CPU를 할당 받을 준비가 되어 대기 중임Terminated: 프로세스를 마쳐 종료함PCB (Process Cont..

article thumbnail
[OS]2 - 핵심 컴포넌트
CS/OS 2024. 6. 17. 21:47

운영체제 핵심 컴포넌트운영체제는 프로그램 실행환경을 제공하고 프로그램과 유저 사이를 잇는다.User와 Kernel을 연결하므로써 잇는다 -> system callSystem Call을 통해 kernel의 기능사용을 통제한다. 운영체제는 사용자의 시스템 사용을 위해 다양한 기능(함수)들을 제공한다.User Interface (GUI, CLI등)프로그램 실행(.exe)입출력 기능 (키보드, 마우스)파일 시스템 관리에러 관리등과 같은 기능들을 제공하고 이와 관련된 System Call 이 존재한다.시스템 콜(System Call)System Call운영체제에서 제공된 서비스를 호출하기 위한 프로그래밍 인터페이스 (like API)주로 c/c++로 작성되어 있음 특징각 System Call에는 고유 번호가 할당..

Operating System basic
CS/OS 2024. 4. 22. 15:17

학부 때 들었던 강의 내용을 복습하면서 정리해보기.... Operating System운영 체제는 응용 프로그램이 실행될 수 있는 환경을 제공할 뿐만 아니라 컴퓨터 하드웨어를 관리하는 소프트웨어이다. (sw와 hw 사의의 sw)어떤 컴퓨팅 자원아게 어떻게 할당할 것인가를 결정하는 자원 관리자의 역할을 한다.컴퓨터의 오류 및 부적절한 사용을 방지하기 위한 제어 프로그램이기도 하다.컴퓨터의 동작 과정컴퓨터가 켜질 때 (부팅), Bootstrap 프로그램이 함께 켜진다. 이 프로그램은 ROM 이나 EEPROM에 적재되어 있으며 일반적으로 펌웨어라고 알려져있다.펌웨어는 시스템을 초기화 하고 운영체제 커널을 로딩하고 실행 시킨다.실행된 운영체제는 첫 번째 프로세스 실행을 시작하고 일부 이벤트가 발생할 때까지 기다..