OS - 03. Memory Management

cs지식/운영체제 2022. 6. 28. 13:44

Address Space(주소 공간) Physical address space: 실제 하드웨어가 지원하는 주소공간 Logical address space: 프로세스가 자신의 메모리를 바라보는 관점에서의 주소 공간 프로세스는 메모리를 가상 메모리 공간으로, 즉 본인의 실제 물리 메모리 공간보다 더 크다고 생각한다! Address Generation 코드는 컴파일되어 어셈블리어로 번역된다. 이때 적재될 메모리 주소는 어디가 될지 모르므로 보통 0번지의 값을 가진다. 실제 메모리는 1000번지부터 적재되므로 jmp 175 코드는 실제 메모리의 175로 가면 안되고 1175로 가야 하므로 1175로 바꿔줘야 한다. Multiple Programs Without Memory Abstraction 단일 프로그램은 ..

Article Thumbnail
OS - 02. Processes and Threads (2)

cs지식/운영체제 2022. 6. 13. 03:51

Scheduling 다음에 실행할 프로세스 또는 쓰레드를 선택하는 과정 스케줄링 시점 프로세스가 생성될 때 프로세스가 종료할 때 프로세스가 I/O, Semaphore, 또는 다른 무언가로 대기할 때 I/O interrupt가 발생할 때 선점 스케줄링 알고리즘(preemptive scheduling)의 경우 Clock Interrupt가 발생할 때 스케줄링 오버헤드(문맥교환비용) 모드 변경 비용(사용자 > 커널 > 사용자) 프로세스 문맥 저장, 복구 메모리 맵 저장, 복구 CPU 캐시 무효화 기타 Process Behavior - 프로세스의 실행 형태 CPU-bound process : 한번실행하면 I/O요청 거의없이 계속 계산만 하는 프로세스. I/O-bound process : 잠깐 계산하고 I/..

Article Thumbnail
OS - 02. Processes and Threads (1)

cs지식/운영체제 2022. 6. 7. 16:46

Race Conditions - ProcessA와 B가 동시에 공유 메모리를 access(접근)하기 원하는 상태. 경쟁상황이 발생할 수 있고, 경쟁 결과에 따라 결과값이 변경될 수 있다. Critical Regions race condition을 피하기 위한 필요 조건 Mutual Exclusion : 상호배제, 동시에 임계구역에 들어갈 수 없도록한다. Progress : 임계 영역 밖에서 실행되는 어떠한 프로세스도 다른 프로세스를 차단할 수 없다. Bounded Waiting : 임계 영역에 들어가기 위해 영원히 기다리는 프로세스는 없도록 한다. 상호배제(Mutual Exclusion)를 구현하기 위한 제안 Disabling interrupts Lock variables Strict alternatio..

Article Thumbnail
OS - Introduction

cs지식/운영체제 2022. 6. 7. 15:51

Dual Mode of Processors - OS는 Code data형태로 존재하고, 프로세스는 필요하면 시스템 호출을 통해 Interrupt를 통해 OS code를 실행하고 돌아간다! -> OS는 프로세스가 아니고, 코드 데이터 형태로 Library처럼 어딘가에 존재하며 프로세스가 언제든 호출할수있도록 준비된 형태로 존재한다. - 사용자 프로그램은 직접 입출력장치를 구동하면 안되며 유저 모드에서 실행한다. 운영체제 코드는 입출력 장치를 실행할 수 있어야 하므로 CPU의 모드는 OS코드 실행시 자동으로 커널모드로 바뀐다. 이후 interrupt return을 하면 다시 유저 모드로 바뀌게 된다. - 커널 모드일때만 특권 명령(입출력, 메모리 영역 조절, 프로세서 상태 변경 등)을 실행할 수 있도록 하드..

Article Thumbnail
Firebase에서 Github 인증 사용설정하기

기타 2022. 5. 11. 15:30

1. Firebase 콘솔에서 승인 콜백 URL 얻기 Firebase 콘솔의 인증창에서 "로그인 방법 설정"버튼을 누르고 로그인 제공업체 탭에서 깃허브를 선택하면 위와같이 승인 콜백 URL와 클라이언트 ID, 비밀번호를 입력하는 창이 뜨게된다. 2. 깃허브 설정에서 OAuth App 등록하기 깃허브로 가서 Settings > Developer Settings > OAuth Apps로 들어가면 새로운 Oauth App을 생성할 수 있다. 생성하기에서 App이름과 홈페이지 URL, 그리고 1번 과정에서 얻은 승인 콜백 URL을 입력해준다. 3. 클라이언트 ID, 비밀번호 등록 생성된 OAuth App에 들어가면 클라이언트 ID와 비밀번호를 얻을 수 있다. 이를 다시 파이어베이스 콘솔창으로 돌아와서 입력해주면..

Article Thumbnail