하드웨어 : 프로세서(CPU), 메모리(RAM), I/O controllers(키보드, SSD, 마우스 등을 제어하는 컨트롤러)시스템 소프트웨어 : 컴파일러, OS(운영체제)Application Software : High-Level 언어(자바, 파이썬, C...)로
Kernel Space > Kernel space는 운영체제가 제어하는 공간이다. Architecture > I/O 장치들과 CPU는 각자 동작한다.(당연) 각 I/O Device 마다 controller가 있다. 각 디바이스 컨트롤러는 local buffer를 갖고
기초 > Processor - CPU Program - 보조기억장치에 저장되어 있는 순서있는 instruction과 데이터의 집합 Process - 메모리에 적재되어 프로세서에 의해 실행되고 있는 프로그램 job - 일반적으로 Process와 혼용하여 사용 프로세스란
기본 > 프로세스는 운영체제에 의해 메모리를 할당받아 CPU에서 실행중인 프로그램이고, 프로세스는 데이터와같은 자원, 그리고 스레드로 구성된다. 프로세스 문제점 인지 > - C에서 fork와 같은 함수를 이용하여 새로운 프로세스를 만드는 것은 비효율적이다. OS는 프
동기화 문제 > 멀티프로세스, 멀티쓰레드 환경에서 공유되는 자원을 동시에 접근할 때 생기는 문제이다. 이런 상황을 race condition이라고 한다. 위 예제에서, 두명의 사람이 은행에서 돈을 뽑는다고 가정하자. 계좌(account)에 100이 들어있고, amou
큐에 들어와있는 프로세스 중 어떤 프로세스를 다음에 동작시킬 것인가를 결정한다. 빈번히 일어나고 빠르고 효율적으로 결정할 수 있어야 한다. 빨간 부분마다 context switch 일어나고 이때 scheduling을 해준다. 모든 시스템에서: no starvation
Memory Management의 Goals > - To provide a convenient abstraction for programming (프로그래밍을 할 때 메모리 구조를 추상화하여 편리하게 코딩할 수 있도록 함) To allocate scarce(부족한) m
&n으로 출력되는 주소는 virtual address이다. 그렇게 때문에 다시 컴파일하지 않는다는 가정 하에 virtual address는 같다. 하지만, 운영체제의 발달로 보안을 위해 실행때마다 랜덤하게 할당하는 경우도 있다^^운영체제는 CPU에서 프로세스의 당장
Issues > - 페이지 테이블 사이즈를 어떻게 줄일 것인가 virtual physical 변환 시간을 어떻게 줄일 것인가 Page Table에 관한 고찰... > 32비트 주소 공간이면 프로세스마다 4MB의 페이지 테이블이 메모리에 적재되는데, 이 페이지 테이블
Page Replacement > 페이지 폴트가 나면 운영체제는 디스크에서 메모리의 프레임으로 폴트가 난 페이지를 로드한다. 때때로, 어떤 프로세스들이 메모리 프레임을 모두 사용하고 있을 수도 있다. 이때, 운영체제는 페이지를 교체해야 되는데, 몇가지 페이지 교체 알고
kernel에 입출력 장치마다 device driver가 있는데, 얘네가 입출력을 담당한다. Block Device : 고정 크기의 블록단위로 데이터를 주고받는다. 버퍼를 사용하고, 순서가 없이 각각의 주소를 이용해 접근하고 seek operation이 필요하다.ex
디스크를 일정한 크기의 1차원 배열로 생각하고, 인덱스로 접근하는데, 그 한 칸을 논리블록이라 한다. 실제 디스크 내 물리적 위치인 섹터와 논리블록이 1:1로 매핑된다. 섹터가 모여서 트랙이 되고, 각 플래터(원판 하나의 동일한 트랙의 집합을 실린더라 한다. 디스크는