CS📟
-
[CS] 메모리 관리 IICS📟 2023. 2. 21. 22:27
불연속 할당 페이징 기법 보통 4kb 페이지의 개수가 많기 때문에 레지스터만으로는 불가능 프로세스의 가상 메모리를 동일한 사이즈의 페이지 단위로 나눔 가상 메모리의 내용이 페이지 단위로 불연속적으로 저장 일부는 백킹 스토리지에 일부는 물리 메모리에 저장 물리적 메모리를 동일한 크기의 프레임으로 나눔 논리적 메모리를 동일 크기의 페이지로 나눔 (프레임과 같은 크기) 모든 가용 프레임들을 관리 페이지 테이블을 사용하여 논리적 주소를 물리적 주소로 변환 External fragmentation(외부조각)이 안 생김 internal fragmentation(내부 조각)은 생김 32비트 주소체계면 4기가 page table 메인 메모리에 상주 프로그램마다 하나씩 존재 Page-table basr register(..
-
[CS 운영체제] 메모리 관리 ICS📟 2023. 1. 16. 21:32
메모리란? 주소를 통해서 접근하는 장치 Logical Address 메모리에 올라가기 전 프로세스마다 가지고 있는 독자적인 가상 메모리 주소 공간 각 프로세스마다 0번지부터 시작 CPU가 보는 주소 physical address 메모리가 실제 올라가는 물리적 주소 주소 바인딩 주소를 결정하는 것 Compile time binding 컴파일시 물리적 주소에 바인딩을 진행 현대 운영체제에서는 알맞지않음 범용컴퓨터(하나의 프로그램만 돌아가는)에서는 사용가능 컴파일러는 절대코드를 생성 Load time binding Loader의 책임하에 물리적 메모리 주소 부여 컴파일러가 재배치가능코드를 생성한 경우 가능 Execution time binding (=Run time) 수행이 시작된 이후에도 프로세스의 메모리 ..
-
[CS] 운영체제 - 병행제어 IICS📟 2022. 12. 26. 21:58
Deadlock and Starvation Deadlock 둘 이상의 프로세스가 서로 상대방에 의해 충족될 수 있는 이벤트를 무한히 기다리는 현상 Starvation indefinite blocking 프로세스가 suspend된 이유에 해당하는 세마포어 큐에서 빠져나갈 수 없는 현상 Classical Problems of Synchronization(전통적인 동기화 문제) Bounded-Buffer Problem(공유 버퍼) 생산자는 저장을 할때 미리 락을 걸고, 저장한 후에 락을 풀고 소비자는 사용 전에 락을 건다. 락을 걸고 포인터를 조작해서 다음 버퍼를 가르킨다. Readers-Writers Problem 한 프로세스가 DB에 write 중일 때 다른 프로세스가 접근하면 안 된다. Read는 동시에..
-
CS 스터디 - 운영체제 : 병행제어 ICS📟 2022. 11. 4. 19:33
Process Synchronization 데이터의 접근 컴퓨터에서 연산을 할 때 데이터를 불러와서 연산을 하고 결과를 반환하게 된다. 문제 여러 곳에서 데이터에 접근을 할때 Race Condition (경쟁 상태) 운영체제가 개입을 할 때 발생 가능 원래 프로세스는 자신의 데이터 영역만 접근하기 때문에 이런 문제가 있을 수 없지만 운영체제가 개입을 하는 경우 운영체제 안에 있는 데이터를 건드리게 되면 문제가 발생 가능 시스템 콜을 사용해서 커널 모드로 진행 중에 CPU를 뺏기게 되면(Context Switch) 연산 중이던 값이 반영이 안 됨 해결 방안 커널 모드에서 수행 중일 때는 CPU를 preempt하지 않음 커널 모드에서 인터럽트가 발생 인터럽트 시에 변환된 값이 반영되지 않는다. 해결 방안 공..
-
[CS] 운영체제 - CPU 스케줄링CS📟 2022. 11. 3. 00:55
CPU 스케줄링 CPU and I/O burst ( 하나의 프로세스의 일생 ) CPU bound job CPU를 길게 쓰는 프로그램 예) 계산을 오래 하는 작업 I/O bound job CPU를 비교적 짧게 사용 예) 주로 사람과 인터렉션하는 프로그램 여러 종류의 job이 섞여 있기때문에 CPU 스케줄링이 필요하다 I/O bound job을 먼저 CPU를 주면 짧게 쓰고 I/O 장치를 사용하러 가지만 CPU bound job을 먼저 주면 I/O 장치까지 놀게 될 수 있다. CPU Scheduler & Dispatcher CPU Scheduler 여러 작업이 존재하기에 스케줄링이 필요 Ready 상태의 프로세스 중 CPU를 줄 프로세스를 고른다. Dispatcher CPU의 제어권을 CPU Schedule..
-
[CS 스터디] OS - ProcessCS📟 2022. 10. 22. 21:49
프로세스 프로세스의 실행 어드레스 스페이스에는 코드 데이터 스택이 있다 주소 공간 코드 영역 프로그램의 기계어들 데이터 영역 전역 변수 같은 데이터 스택 함수들을 저장 크기에 제한이 있다. 힙 스택보다 크다 필요할 때마다 사용 포인터로 사용해야 하기 때문에 느림 커널 주소 공간의 내용 코드 영역 시스템 코드, 인터럽트 처리 코드와 자원 관리를 위한 코드가 존재 데이터 PCB(Process Control Block) 운영체제가 각 프로세스를 관리하기 위해 프로세스당 유지하는 정보 다음의 구성 요소를 가진다(구조체로 유지) OS가 관리상 사용하는 정보 Process state, Process ID scheduling infomationm priority CPU 수행 관련 하드웨어 값 Program count..
-
CS 스터디 - 컴퓨터 시스템의 구조CS📟 2022. 10. 14. 17:42
* 이 글은 반효경 교수님의 수업을 듣고 정리한 글입니다. 정리하는 과정에서 틀린 점이 있거나 잘못 이해한 부분이 있다면 수정하겠습니다. 왜 소프트웨어를 공개한것일까? 소프트웨어는 독점체제가 가능한 시장이다. 일등이 시장이 장악해버리면 그 아래에 시장을 장악하지 못한 소프트웨어들이 소스를 공개한다. 그러면 오픈소스들이 퍼지게 되면서 시장에 침투하게 된다. 공유의 힘! 복습 운영체제란 무엇인가? 자원을 관리하고, 사용자가 편하게 사용할 수 있게 해주는 소프트웨어 좁은 의미 메모리에 항상 상주함(커널) 넓은 의미 커널뿐 아니라 각종 주변 시스템 유틸리티를 포함 목적 자원의 효율적 관리 하드웨어 자원과 소프트웨어 자원 최대한의 효율을 내야 하지만 지나친 차별도 배제 메모리의 적절한 분배 운영 체제의 분류 단일..
-
[CS 스터디] 운영체제 개요CS📟 2022. 10. 7. 11:14
* KMOC 반효경 교수님의 운영체제 수업을 듣고 정리하는 내용입니다. 운영체제 개요 운영체제란? 유저가 컴퓨터 하드웨어를 알지 못해도 사용할 수 있게 도와주는 하드웨어와 소프웨어를 연결해주는 계층 목적 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 운영체제는 동시 사용자/프로그램들이 각각 하나의 컴퓨터에서 수행되는 것 같은 일루젼 제공 하드웨어를 다루는 부분을 운영체제가 컨트롤 컴퓨터 시스템의 자원을 관리 CPU, 메모리, I/O 장치 등의 효율적 관리 주언진 자원으로 최대한의 성능을 내도록 관리 (효율성) 특정 사용자/프로그램에 지나친 부이익이 발생하지 않도록 관리 (형평성) 사용자 및 운영체제 자신 보호 컴퓨터 시스템의 구조 내부 CPU CPU 스케줄링 CPU 사용권 분배 메모리 사용할 프로..