CS 공부/운영체제
OS 정리 5 - 메모리 관리 (Memory Management) [1]
1. Background 프로그램은 (디스크에서) 메모리로 가져 와서 프로세스 내에서 실행되도록 해야 함 주 메모리 및 레지스터는 CPU가 직접 액세스 할 수 있음 레지스터는 하나의 CPU 클록 (또는 그 이하)으로 액세스 주 메모리는 많은 사이클을 수행할 수 있음 캐시는 주 메모리와 CPU 레지스터 사이에 위치 올바른 작동을 보장하기 위해 필요한 메모리 보호 2. Binding of Instructions and Data to Memory 프로그램은 기본적으로 이진 실행파일 형태로 디스크에 저장되며, 이를 실행하기 위해서는 프로그램을 메모리로 가져오는 것이 필요하다. 이때, 주소 바인딩은 크게 세가지 단계로 이루어진다. 1. 컴파일 시간 바인딩 - 만일 프로세스가 메모리 내에 들어갈 위치를 컴파일 시간..
OS 정리 4 - CPU 스케줄링 (CPU Scheduling)
0. CPU 스케줄링 CPU 스케줄러는 다중 프로그램 운영체제의 기본이다. 운영체제는 CPU를 프로세스 간에 교환함으로써, 컴퓨터를 보다 생산적으로 만든다. 최신 운영체제에서는 실질적으로 프로세스가 아니라 커널 수준 스레드를 스케줄 한다. CPU, Core, Processor, Thread 용어 설명 더보기 Processor 참조 링크 프로세서란 컴퓨터와 전자기기들에 내장된 작은 칩을 말한다. 프로세서의 기본적인 역할은 입력을 받아서 적절한 출력을 제공하는 것이다. 이러한 작업들은 간단한 작업처럼 보일 수 있지만 최신 프로세서는 초당 수 조 개의 계산을 처리할 수 있다. 프로세서의 한 종류로써 마우스 및 키보드 입력 처리, 응용 프로그램 실행과 같은 모든 기본 시스템 명령을 처리하는 컴퓨터의 중앙 프로세..
OS 정리 3- 프로세스 & 쓰레드 (Process and Thread)
1. Process 정의 프로세스 : 수행중인 프로그램 텍스트, program counter와 register의 값, stack, data section, heap section을 포함한다. * 프로그램은 어떤 작업을 하기 위한 명령어 목록과 데이터를 묶어 놓은 파일이며, 보조 기억장치에 저장되어 있다. 간단하게 비유하면 프로그램은 레시피, 프로세스는 요리라고 보면 편하다. 프로세스의 상태 생성 상태(new) : 프로그램을 메모리에 가져와 실행 준비가 완료된 상태. 준비 상태(ready) : 실행을 기다리는 모든 프로세스가 자기 차례를 기다리는 상태 실행 상태(running) : 선택된 프로세스가 CPU를 사용하는 상태(실행되는 상태) 대기 상태(waiting) : 실행 상태에 있는 프로세스가 입출력을 ..
CS 스터디 - OS 정리 3
Operating System Structure Multiprogramming 멀티프로그래밍은 효율성을 위해 필요하다. CPU 가 항상 하나 이상의 실행을 하기 위해 jobs(code and data) 들을 Multiprogramming이 organizes한다. 전체 작업의 subset은 항상 메모리에 저장된다. job Scheduling에 의해 작업이 선택된다. 입출력등으로 인해 CPU가 기다려야할 경우에 운영체제는 다른 작업으로 변경되게 된다. Time sharing 멀티프로그래밍에서 확장된 개념으로, 멀티태스킹이라고 불리기도 한다. CPU가 스케줄링을 통해 작업들을 빠르게 switching 하면서 마치 동시에 프로그램이 구성되는 것처럼 느껴지게 한다. 응답시간은 충분히 짧아야 한다. 각 유저들은 메..
CS 스터디 - OS 정리 2
메모리 계층구조(Memory Hierarchy) 메모리를 필요에 따라 여러가지 종류로 나누어둔 것이다. secondary storage 주기억장치는 모든 프로그램을 담기에 용량이 너무 적은 데다가 전원이 꺼지면 담겨져 있던 데이터가 모두 초기화 된다. 이를 보완하기 위해 주기억장치 밑에 HDD, SSD와 같은 보조기억장치를 넣게 된다. 따라서 운영체제는 보조기억을 위해 다음과 같은 역할을 지닌다. - 비휘발성 - 보조 메모리 - 프로그램과 데이터 저장 캐시 메모리 (Cache Memory) 프로세서 내외부에 있으며, 처리 속도가 빠른 프로세서와 상대적으로 느린 메인 메모리의 속도 차이를 보완하고 데이터를 메인 메모리에서 블록 단위로 가져와 프로세서에 워드 단위로 전달하여 속도를 높인다. 주기역장치에서 사..
CS 스터디 - OS 정리 1
프로세서 (=CPU) 제어장치, 연산장치, 레지스터 그리고 데이터 버스로 구성된 디지털 시스템의 핵심 부분으로,프로그램을 기억장치로부터 읽어 연산 처리, 비교 처리, 데이터 전송, 편집, 변환, 테스트와 분기 등의 데이터를 처리하고, 각종 장치를 구동하는 역할을 한다. 프로세서 레지스터 프로세서의 내부에 있으며, 프로레서가 사용할 데이터를 보관하는 가장 빠른 메모리이다. 레지스터 종류 User Visible Register : 사용자가 운영체제와 프로그램을 이용하여 정보를 변경할 수 있는 레지스터로 접근이 가능한 데이터와 주소, 일부 조건 코드를 보관한다 ex)데이터 레지스터, 주소 레지스터 Control and Status Register : 연산을 위해 사용하거나 연산 결과의 상태를 알려주는 값들이 ..