반응형 OS20 CPU Scheduling 2 단일 CPU에서 멀티스레드 처리 개념은 병행성이다. 다중 CPU에서 멀티스레드 처리 개념은 병렬성이다. 스레드 모델에는 1:1 모델, n : 1 모델, n : m 모델이 있는데 모델에 따라 스케줄링 방식이 달라진다. 다중 프로세서 스케줄링에는 Asymmetric Multi Processing (AMP)와 Symmetric Multi Processing (SMP) 방식이 존재한다. AMP는 마스터 프로세서, 슬레이브 프로세서가 존재하며 마스터 프로세서가 스케줄링을 진행한다. SMP는 모든 프로세서가 동등하다. SMP 스케줄링 알고리즘에서 4가지를 알아보겠다. 부하공유 스케줄링 전용 프로세서 할당 스케줄링 갱 스케줄링 동적 스케줄링 부하공유 스케줄링은 모든 CPU가 공유하는 1가지 큐가 존재한다. 큐 안의 .. OS 2021. 11. 6. CPU Scheduling 2022. 12. 28. 11:50 복습을 위한 수정 시작 CPU 스케줄러 CPU 스케줄러는 프로세스가 생성된 후 종료될 때까지 모든 상태 변화를 조정하는 일을 한다. 여러 개의 프로세스가 하나의 프로세서(CPU)를 효율적으로 공유하려면 적절한 스케줄링이 필요하다. CPU 스케줄러는 프로세스가 생성된 후 종료될 때까지 모든 상태 변화를 조정하는 일을 한다. 스케줄링을 위한 기초적인 개념으로는 처리율과 이용률이 있다. 처리율을 극대화하고 이용률을 극대화해야만 CPU를 열심히 일하게 만드는 것이다. CPU가 열심히 일하는 것이 OS의 목표이다. 처리율과 이용률 먼저 1초 실행, 1초 유휴를 진행하는 프로세스 P1, P2가 있다. 각 프로세스는 60초 동안 작동한다. 먼저 첫 번째 상황이다. P1 프로세스가 .. OS 2021. 10. 29. DeadLock(교착 상태) 2022. 6. 23. 23 : 42 복습을 위한 리팩토링 시작! DeadLock 두 개 이상의 프로세스가 필요한 자원을 기다리면서 무한정 중지된 상태가 교착 상태, DeadLock이다. 제한된 자원의 이용률을 높이고 시스템의 효율성을 높이고자 했을 때 발생하는 부작용이 교착 상태다. 교착상태는 시스템 자원, 공유 변수(또는 파일), 응용 프로그램을 사용할 때 발생할 수 있다. CPU를 안 쓰고 무한 대기 상태면 CPU 사용률이 0이 된다. OS입장에서는 너무나도 별로인 상태다. 해결방안으로는 프로세스를 종료, 교체하고 외부에서 강제로 해제시키는 방법이 있다. DeadLock를 설명하는 아주 좋은 예시는 식사하는 철학자들 문제다. 아래 링크에서 확인할 수 있다. https://ko.wikipedia.or.. OS 2021. 10. 15. 프로세스 간 통신 2022. 6. 23. 16 : 21 복습을 위한 리팩토링 시작! 프로세스 간 통신 프로세스 간 통신을 IPC, Inter Process Communication이라 한다. 프로세스 간 통신 3가지 프로세스 내부 데이터 통신 프로세스 간 데이터 통신 네트워크를 이용한 원격 데이터 통신: 네트워크(예를 들어 인터넷) 간의 프로세스 간 데이터 전송, 소켓 RPC과 같은 네트워크 프로토콜 이용 프로세스 내부 데이터 통신 2개 이상의 스레드 간 데이터 통신 (메모리 변수 이용), 전역 변수와 파일공유를 통한 데이터 전달한다. 프로세스 내부에서 스레드는 같은 전역 변수를 공유한다. 따라서 이를 이용해 통신방식을 진행한다. 프로세스 간 데이터 통신 동일 컴퓨터 내 프로세스 간 통신. 즉 Shared Memory, .. OS 2021. 10. 8. 임계 구역과 임계 구역 해결 방법 2021. 10. 2. 00:51 2022. 6. 22. 15:30 복습을 위한 수정 시작 프로세스는 독립적으로 작업을 할 수도 있고 공유된 자원을 가지고 공동 작업을 할 수도 있다고 이전 장에서 언급했다. 이번에는 본격적으로 여러 프로세스가 한정된 자원을 가지고 공동으로 작업을 할 때 발생할 수 있는 문제에 대해 알아보자. 공유자원 공유자원이란 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 말한다. 공유자원은 여러 프로세스가 공동으로 이용하기 때문에 누가 언제 데이터를 읽거나 쓰느냐에 따라 그 결과가 달라질 수 있다. 따라서 프로세스들의 공유 자원 접근 순서를 정하여 예상치 못한 문제가 발생하지 않도록 해야 한다. 2개 이상의 프로세스가 공유 자원을 병행적으로 읽거나 쓰는 상황을 '경쟁 .. OS 2021. 10. 2. 병행 프로세스와 병렬 프로세스의 차이 2021. 9. 24. 17:51 2022. 6. 22. 14:17 복습을 위한 수정 시작 OS는 성능 향상을 목적으로 CPU가 한 개 일 때 프로세스를 병행 실행할 수 있고, CPU가 다수일 때 프로세스를 병렬 실행할 수 있다. 병행 프로세스와 병렬 프로세스에 대해 자세히 알아보겠다. 병행 프로세스 Concurrent Process CPU가 한 개일 때 실행 중인 2개 이상의 프로세스이다. Asynchronous Concurrent Processes 프로세스의 병행성을 높여야, 성능 개선을 기대할 수 있고 효율이 높아진다. 병행 프로그래밍의 최적화로 병행성을 극대화. 병행 프로그래밍을 할 때 고려해야 할 사항들이 있다. 병행 프로세스들 간의 공유 자원 문제, 병행 프로세스들 간의 상호 통신 문제, 병행.. OS 2021. 9. 24. 프로세스와 스레드 2022. 6. 15. 22:17 수정 시작 중요한 프로세스와 스레드를 복습해보겠습니다. 프로세스 프로세스란 실행 프로그램이 실행을 위해 메모리에 올라온 동적인 상태이다. 프로세스는 즉 실행 중인 프로그램, 메모리에 로딩된 형태이다. 프로세스는 컴퓨터 시스템의 작업 단위로 태스크라고도 부른다. 우선 운영체제는 프로그램을 메모리의 적당한 위치로 가져온다. 그와 동시에 주문서에 해당하는 작업 지시서를 만드는데, 이 작업 지시서가 프로세스 제어 블록이다. 일명 프로세스 제어 블록은 PCB라고 한다. PCB에는 대표적으로 세 가지 큰 정보가 있다. 프로세스 구분자 메모리에는 여러 개의 프로세스가 존재하므로 각 프로세스를 구분하는 구분자다. 메모리 관련 정보 CPU는 실행하려는 프로세스가 메모리의 어디에 저장되어.. OS 2021. 9. 17. Operating System (운영체제), Kernel(커널) 2021. 9. 10. 17:02 작성 2022. 6. 13. 21:17 수정 시작 작년 2학기 수업이라 이 때 정리했지만, 복습을 위해 블로그 글들을 리팩토링하기로 결정했습니다. 전공 공부도 다시 하면서, 깔끔하지 않은 게시글도 정리해보겠습니다. Operating System (운영체제) 운영체제는 컴퓨터 전원을 누르면 제일 먼저 마주치는 소프트웨어다. 유닉스, 리눅스, 윈도, 맥 등 다양한 운영체제와 스마트폰에도 안드로이드, IOS 등 다양한 운영체제가 있다. 운영체제란 하드웨어와 사용자(소프트웨어) 간의 조정자 역할, 자원 관리자 역할, 입출력 장치와 사용자 프로그램 제어 역할을 수행한다. 운영체제는 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어다.. OS 2021. 9. 10. 이전 1 2 다음 반응형