Computer Science/운영체제
CPU 스케줄링 알고리즘
1. CPU 스케줄링 정의 : 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업 종류 장기 스케줄링 어떤 프로세스가 시스템의 자원을 차지할 수 있도록 할 것인가를 결정해 준비상태 큐로 보내는작업 중기 스케줄링 어떤 프로세스들이 CPU를 할당받을 것인지 결정하는 작업 단기 스케줄링 프로세스가 실행되기 위해 CPU를 할당받는 시기와 특정 프로세스를 지정하는 작업 목적: 공정성, 처리율 증가, CPU 이용률 증가, 우선순위 제도 , 오버헤드 최소화, 응답시간 최소화, 반환시간 최소화, 대기시간 최소화, 균형있는 자원의 사용, 무한 연기 회피 등 2. CPU 스케줄링 알고리즘 : 어떤 프로그램에 CPU 소유권을 줄 것인지 결정. CPU 이용률은 높게, 시간당 많은 일을 수행하고, 준비 큐에 있는 프로세스는 ..

프로세스와 스레드
1. 프로세스 : 실행중인 프로그램 2. 스레드 : 프로세스 내 작업의 흐름 3. 프로세스와 컴파일 과정 전처리 : 소스코드의 주석을 제거 #include 등 헤더 파일을 병합하여 매크로를 치환 컴파일러 : 오류처리, 코드 최적화작업을 하며 어셈블리어로 변환한다. 어셈블러 : 어셈블리어를 기계어 형태의 오브젝트 코드로 해석해 주는 컴퓨터 언어 번역 프로그램. 기본 컴퓨터 명령어들을 컴퓨터 프로세서가 기본 연산을 수행하는데 사용할 수 있는 비트 패턴으로 변환 링커 : 프로그램 내에 있는 라이브러리 함수 또는 다른 파일들과 목적코드를 결합해 실행파일을 만듬 정적 라이브러리 : 프로그램 빌드 시 라이브러리가 제공하는 모든 코드를 실행 파일에 넣는 방식. 외부의존도 낮고, 메모리 효율성이 떨어짐. 동적 라이브러..

메모리
1. 메모리 계층 레지스터 CPU안에 있는 작은 메모리, 휘발성, 속도 가장 빠름, 기억용량이 작다. 캐시 L1,L2캐시를 지칭. 휘발성, 속도 빠름, 기억용량 적음.L3캐시도 존재 * 데이터를 미리 복사해 놓는 임시저장소, 빠른장치와 느린장치 사이에서 속도차이에 따른 병목현상을 줄이기 위한 메모리 주기억장치 RAM을 의미. 휘발성,속도, 기억용량 보통 보조기억장치 HDD,SDD를 의미, 휘발성,속도 낮음, 기억용량 많음 * 캐싱계층 : 계층과 계층사이의 속도차이를 해결하기 위한 계층 * 캐시히트 : 원하는 데이터를 찾음(cpu내부 버스기반작동으로 빠름) * 캐시미스 : 해당 데이터가 캐시에 없으면 메모리에서 데이터를 탐색(시스템버스 기반작동으로 느림) * 캐시매핑 : 캐시가 히트되기 위해 매핑하는 방법..
운영체제, 컴퓨터의 개념 및 구조
1. 운영체제 개념 사용자가 컴퓨터를 쉽게 다룰 수 있도록 돕는 인터페이스. 한정된 메모리 또는 시스템자원을 효율적으로 분배 2. 운영체제의 역할 CPU 스케쥴링과 프로세스 관리 메모리 관리(어떤 프로세스에 메모리를 얼만큼 할당할지) 디스크 파일 관리 I/O 디바이스 관리(입출력장치와 컴퓨터 간에 데이터관리) 3. 운영체제의 구조 유저프로그램 사용자 및 기타 시스템 프로그램 GUI GUI, CUI 등 시스템콜 - 운영체제가 커널에 접근하기 위한 인터페이스(추상화계층) - 유저모드 -> 커널모드(파일 읽기) -> 유저모드(프로그램 로직 수행) 이 과정을 통해 컴퓨터 자원에 대한 직접 접근을 차단, 타 프로그램으로부터 보호 - modebit을 참고해 유저,커널모드 구분(1또는0의 값을 가지는 플래그변수) 커..