OS 7

[운영체제와 정보기술의 원리] 10장 웹캐싱

웹캐싱 웹캐싱은 웹서버의 캐시서버로 웹서버의 부하를 줄여주기위해 사용한다. 웹서버에 요청이 많아질수록 네트워크의 병목현상이 발생한다. 이러한 병목현상을 없애주기 위해 웹캐싱을 활용해 웹서버의 요청을 미리 캐싱해뒀다가 사용자에게 전달해주는 개념이다. 포워드 프록시 VS 리버스 프록시 위 그림에서 보면 웹캐싱을 위해 웹 브라우저는 프록시(proxy) 서버에 요청을 보낸다. 근데 이러한 프록시 서버의 책임은 사용자, 기업 어디에 있을까? 포워드 프록시 서버 : 클라이언트측이 프록시. 리버스 포록시 서버 : 서버측의 프록시. 포워드 프록시 클라이언트측에서 사용하는 프록시 서버다. (일반적인 프록시 서버라면 포워드 프록시.) 클라이언트가 서버에게 요청을 보낼때 포워드 프록시 서버에 요청을 먼저 보낸다. 그러면 프..

OS 2023.12.17

[운영체제와 정보기술의 원리] 9장 디스크 관리

디스크 구조 먼저 디스크가 어떻게 생겼는지 먼저 살펴보자. 디스크에 데이터를 저장할때는 최소 저장 단위인 논리블록(logical block) 단위로 저장한다. 이러한 논리블록은 1개의 섹터에 저장이 된다. 즉 논리블록과 섹터는 1:1 관계다. 디스크는 여러개의 마그네틱 원판이 겹쳐진 형태로 되어있다. 마그네틱 원판위에는 여러개의 트랙으로 구성되어있다. 트랙은 섹터들이 이름 그대로 섹터들이 일열로 구성되어있는것이다. 여러개의 원판에 같은 z 좌표가 같은 집합을 실린더라고 한다. 디스크에서 데이터를 읽고 쓸때는 암(arm)이 해당 실린더로 이동하고, 원판이 돌아가 트랙위에 섹터를 헤드가 읽는다. 디스크 스케줄링✅ 디스크에서 데이터를 일겅오려면 여러개의 섹터들을 접근해야한다. 그렇다면 접근해야할 섹터들이 여러..

OS 2023.12.13

[운영체제와 정보기술의 원리] 8장 가상 메모리

현대의 시분할 시스템에서는 여러 프로세스가 동시에 메모리에 올라와있다. 다만 프로세스의 모든 주소영역을 올리는것이 아닌 실제로 수행에 필요한 부분만 메모리에 올라와있다. (그렇지 않은 부분은 백킹 스토어에 저장) 이로인해 프로세스는 메모리 공간의 제약없이 0번부터 시작하는 메모리 공간을 홀로 사용한다고 느낀다. 실제 물리적 공간과 달리 0번 부터 시작하는 프로세스의 독자적인 메모리 공간을 가상 메모리(논리적 메모리)라고 한다. 그렇다면 프로세스의 주소공간을 메모리에 어떤 단위로 적재할것인지를 결정해야한다. 요구 페이징(demand paging) : 대부분 이 방식을 사용. 요구 세그멘테이션(demand segmentation) : 사용하더라도 하나의 세그먼트를 여러개의 페이지로 나누는, 페이지드 세그먼테..

OS 2023.12.12

[운영체제와 정보기술의 원리] 7장 메모리 관리

32bit vs 64 bit 32 bit 컴퓨터란 메모리를 테이블로 저장한느데 인덱스를 32 bit로 사용한다는 말. 메모리 주소는 1byte 단위로 구분하므로 2^32 개의 인덱스와 1byte의 항목값을 가진 테이블이 존재. 그래서 총 주소 공간은 2^32 * byte == 4 * 2^30 * byte 인데 2^10, 2^20, 2^30 은 각각 K,M,G 이므로, 4GB 만큼의 주소공간을 표현이 가능함. 그래서 32 bit 컴퓨터는 램 크기가 4GB를 넘을 수 없음. 같은 계산 방식으로 64bit는 2^64 * byte == 16 * 2^60 * byte == 16 * 10^9 GB 이다. 다시 32 bit 컴퓨터는 보통 4KB(2^12 byte)를 단위로 페이지라는 구역을 만들어 쓴다. 32bit ..

OS 2023.12.04

[운영체제와 정보기술의 원리] 6장 CPU 스케줄링

CPU 버스트, I/O 버스트 프로세스는 Load(메모리->CPU), Store(CPU->메모리), Add(두 레지스터의 합) 같이 CPU 내에서만 수행하는 작업과 디스크 입출력 같이 외부 장치를 이용하는 작업을 번갈아 동작함. 그래서 이 두가지 작업이 이루어지는 과정을 2가지로 분류함. CPU 버스트 : Load, Store, Add 처럼 CPU 내에서 이루어지는 작업들. 사용자 프로그램이 직접 CPU에 접근함. 굉장히 빠름. I/O 버스트 : CPU 가 아닌 외부 장치(입출력 장치)들과 데이터를 주고받는 과정. 사용자 프로그램이 아닌 커널이 대신 작업을 수행함. 매우 느림. 프로세스가 running state가 되면 이와같이 CPU 버스트와 I/O 버스트를 번갈아 진행함. 근데 프로그램마다 CPU 작..

OS 2023.11.16

[운영체제와 정보기술의 원리] 5장 프로세스 관리

프로세스 프로세스 : 실행중인 프로그램. 디스크에 존재하던 프로그램이 메모리에 올라와 실행상태가 됨. (프로세서는 CPU를 칭함.) CPU를 여러 프로세스가 점유했다가 뺐기므로 이전 프로세스를 복구할 수 있어야함. 이때 이전 프로세스를 복구하기위한 정보를 프로세스 문맥이라고함. 하드웨어 문맥 : CPU의 수행상태. PC(Program Counter), 각종 레지스터 값 프로세스의 주소공간 : Code,Data,Stack,... 같은 독자적인 주소공간 커널상의 문맥 : 프로세스가 되면 운영체제는 해당 프로세스를 위한 PCB와 커널스택을 생성함. PCB PCB는 프로세스를 저장 및 복구하기 위한 운영체제의 정보(자료구조)이다. CPU dispatcher가 다음 실행할 프로세스를 결정할때(문맥교환시) 해당 P..

OS 2023.11.15

[운영체제와 정보기술의 원리] 2,3,4장

운영체제란 탄생 배경 : 사용자가 하드웨어를 직접 운용하는것이 어렵기 때문에 대신해줄 소프트웨어가 필요했음. 운영체제 : 소프트웨어 계층과 하드웨어 계층 연결해주는 소프트웨어 커널 : 메모리에 항상 상주해있는 운영체제 코드 운영체제 역할 자원관리자 : 한정된 시스템 자원을 효율적으로 관리 (가장 중요) 인터페이스 : 사용자가 하드웨어를 직접 사용하지 않고 인터페이스로 쉽게 접근 보안 및 보호 : 여러 사용자 및 프로그램이 충돌하지 않게 관리, 악성프로그램 방지 자원관리기능 CPU 스케쥴링 : 어떤 프로세스에게 CPU를 할당할것인가 (FCFS, Round Robin, 우선순위, ...) 메모리 관리 : 한정된 메로리를 여러 프로세스가 어떻게 나눠 사용할것인가 (고정분할, 가변분할, 가상메모리, ...) 프..

OS 2023.11.14