일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 애플 디벨로퍼 아카데미 21주차 회고
- 치지직
- 제앱소
- swift문법
- 소프트웨어분석및설계
- 앱 비교 프로젝트
- ObservedObject
- global soop
- 데이터베이스
- SWIFT
- 네이버 치지직
- OS
- Swift 기능
- useReducer
- 애플 디벨로퍼 아카데미
- sqoop
- 데이터베이스 공부
- 숭실대
- 애플 디벨로퍼 아카데미 후기
- 네이버 부스트캠프
- 운영체제
- Apple Developer Academy @ POSTECH
- ObservableObject
- Swift 디자인패턴
- Swift 문법
- 애플 아카데미 후기
- apple developer academy 후기
- iOS 개발 오류
- StateObject
- react
- Today
- Total
목록운영체제 (8)
사과하는 제라스
File이란? : Array of Bytes : A Collection of Related Information File System -> Memory Management System과 유사한 일을 함. 1) File과 Physical Disk Block 간의 Mapping을 제공함. - Disk 위치 배치를 담당함(File Blocks -> Disk Blocks) ∴ 유저는 File이 저장된 위치를 알 필요가 없음. 2) Disk에 들어가 있는 File 전체를 총칭함. -> File System의 종류에 따라 File들의 배치나 구성이 달라질 수 있음. File Operations Open / Close Semantics 여러 프로세스가 파일을 공유하는 경우, 두개의 Open File Table을 유지..
멀티 프로그래밍 시스템에서 메모리 내에 위치한 유저 프로세스의 수가 증가함. -> 모든 유저 프로세스가 사용하는 Page 수보다 PM의 Frame 수가 적은 상황이 발생 -> 메모리 과다 할당 상태(= 다 PM에 올려둘 순 없잖아~~) 이걸 해결하려면 Page Fault 처리에 Page Replacement를 추가해야함. Page Replacement : PM에 위치한 Page를 디스크에 저장하고 요구된 Page가 해당 Frame을 할당 받도록 하는 방법 Page Fault with Page Replacement 1. 디스크에서 요구된 Page의 위치를 찾음. 2. PM에서 Free Frame을 찾음 - Free Frame이 있으면 그거 바로 사용함. - 없으면 Page Replacement Algori..
범용 컴퓨터 시스템의 목적(=운영체제의 목적) - CPU의 활용률을 극대화시킴. - 사용자에게 빠른 응답을 제공함. 이러다 보니...!! 메모리 관리의 필요성 등장 - 여러 프로그램이 동시에 메모리에 적재되어 실행됨 -> "메모리 공유가 필요함!" - 컴퓨터의 메모리는 한정적인 자원이다보니 관리가 필요 -> "자원이 한정적!" Address Space(주소 공간) : 프로세스에서 참조할 수 있는 주소들의 범위 및 집합 - 프로세스와 1:1 관계 - User Thread는 주소 공간을 공유함. 주소 공간의 크기 - CPU의 주소 버스의 크기에 의존함. ex. 주소 버스가 32bit이면 2^32개의 서로 다른 주소에 대한 식별자를 만들 수 있기에, 0~2^32-1까지의 주소 범위를 Addressing할 수 ..
동기화의 고전적인 문제 Big 3 1. Bounded-Buffer Problem 2. Readers and Writers Problem 3. Dining Philosophers Problem Bounded-Buffer Problem : N개의 Item을 삽입할 수 있는 Buffer가 있음. 여기에 여러 생산자와 소비자들이 접근함. - 생산자: 하나의 Item을 생산해서 Buffer에 넣는 사람. -> Buffer 배열 중 같은 index에 접근해서 Item을 넣을 시 Race Condition이 발생할 수 있음. - 소비자: Buffer에서 하나의 Item을 가져오는 사람. -> Buffer에서 가져오는 Item을 소비하고 비워주는데 Buffer의 상태가 Empty면 대기함. 근데 이런 거에 많이들 대기..
Race Condition : 공유 데이터에 대해 여러 프로세스가 동시 접근 및 변경을 시도하는 상황 -> 이러한 동시 접근 및 변경은 데이터의 일관성(Consistency)을 해침. Race Condition 예시 은행의 입출금 문제 : 1000원의 잔고가 있는데, 여기에 500원 입금, 500원 출금이 동시에 일어남. 결과는? 이 소스코드들은 컴파일러에 의해 분해되기에 레지스터 수준에서 봐야함. Critical Section : 여러 프로세스들이 공유하는 데이터에 접근하는 Code 영역 ex. 위 입출금 문제 예제에서는 Balance = Balance + 500; , Balance = Balance - 500; Race Condition을 방지하기 위해!!! 한번에 단 하나만의 프로세스가 Critic..
Process가 뭐여...?? 이거 되게 추상적인데... OS에서 추상적인 개념으로는... 1) Scheduling의 단위 2) 소유하고 있는 자원(Virtual Memory, file 등)에 대한 보호 프로그램과의 관계에서는... 3) 정적인 단위의 프로그램에 반해 하나의 실행 흐름을 갖고 실행 중인 프로그램 -> 근데 이거 실행 흐름이 여러 개일 수도 있는데...?!?!?!?!? 이렇게 프로세스 안에서 실행되고 있는 논리적인 각각의 실행 흐름 => 이게 Thread다!!! Thread - Execution Unit - 프로세스 내의 실행 흐름 - 프로세스보다 작은 단위 - 프로세스가 제공한 Protection Domain은 없음 Thread 라는 개념은 왜 생겨남...?? 프로세스를 여러개를 쓸 수는..
프로세스들이 어떻게 서로 협력을 할 수 있음...? OS는 이를 어떻게 지원함...? 궁금해...!!! IPC란...? : 프로세스들 간에 데이터/정보를 주고 받기 위한 메커니즘. -> 커널에서 IPC를 위해 System Call 형태로 도구를 제공함. (프로세스들은 이 System Call들을 호출함으로서 프로세스 간에 통신할 거라고 OS에게 얘기해 줌.-> OS는 그 프로세스들에게 그 기능을 사용 가능하게 해줌.) - IPC의 필요성 : Process 협력 모델을 구현하기 위해서 반드시 필요함. -> 실행 중인 프로세스는 협력하는 다른 프로세스의 영향을 받음. 어떤 시스템이 돌아갈 때 여러 프로세스들이 사용되는데 그들 간에는 통신을 해야 함. 이러한 통신을 위해서는 IPC가 필요함. IPC 모델 2가..
OS의 중요 기능 2가지 중 하나인 'HW 자원에 대한 배분' ∴ OS가 각 프로세스들에게 CPU를 어떻게 배분?? 이걸 알아야 함. (CPU) Scheduling이란? : 어떻게 프로세스들에게 CPU의 사용을 할당할 것인가. - Multiprogramming이란 기법이 발전하게 되면서 CPU Scheduling이 발전함. -> 멀티프로그래밍: Memory 내의 Ready State의 프로세스들 중 하나에 CPU를 할당하는 방법. - CPU 스케줄링 목표: CPU 사용률과 처리량의 최대화 프로세스 수행 사이클 - CPU-I/O Burst Cycle : 프로세스가 CPU Burst와 I/O Burst를 번갈아 가며 수행을 함. - CPU Burst: CPU로 연산을 수행하는 시간 - I/O Burst: I..