본문 바로가기

반응형

SW정글사관학교

(22)
[SW 정글] 6/7 ~ 21 WIL - (feat, pintOS VM - all pass) cow 개념 해결 방법 - 자식이 부모와 같은 물리메모리를 가리키게한다. (자식의 writable을 0으로 한다.) - 자식이 write를 할 경우 pagefault를 발생시키고, 메모리를 새로 복사하여 할당 후 write를 수행한다. (이 과정에서 원래(부모)의 writable을 확인하고, 새 메모리를 할당 후에는 기존(부모)의 writable로 writable을 바꿔준다.) // 기존코드 bool supplemental_page_table_copy(struct supplemental_page_table *dst, struct supplemental_page_table *src) { struct hash_iterator iter; hash_first(&iter, &(src->spt)); while (h..
[SW 정글] 5/22 ~ 25 WIL - (feat, pintOS) 이거 왜 함? 단순히 시켜서 한다 ? 내가 생각하는 개발자의 기본 덕목 '생각하며 프로그래밍하기'에 어긋난다. 그래서 운영체제를 왜 해야하는지 납득해보자 운영체제는 사용자를 위해 하드웨어, 소프트웨어를 관리하는 시스템 소프트웨어다. 사용자를 위해 뭘 해주나 ? 👉 메모리(자원)를 효율적으로 관리하고 운영(스케쥴)한다. 또한 프로그램이나 다른 사용자가 데이터를 삭제하거나 중요 파일에 접근하지 못하게 자원 보호도 해준다. 그리고 주어진 문제(pintos에서는 thread?)를 정확하고 빠르게 처리해주려고 노력한다. 프로그래머는 사용자들에게 프로그램를 제공한다. 그 프로그램은 사용자의 정보를 보호하고, 메모리를 효율적으로 관리하고 빠르고 정확해야할 필요가 있다.(사용자를 유치하고 싶다면.) 위처럼 운영체제가 ..
[SW 정글] 5/21 PintOS - alarm 할거 pintos주차가 왓다 처음은 alarm clock이다 과제 내용은 아래와 같다 Reimplement timer_sleep(), defined in devices/timer.c. Although a working implementation is provided, it busy waits, that is, it spins in a loop checking the current time and calling thread_yield() until enough time has gone by. Reimplement it to avoid busy waiting. 👇 evices/timer.c에 정의된 timer_sleep()을 다시 구현합니다. 작동하는 구현이 제공되더라도 바쁘게 기다립니다. 즉, 현재 시간을..
[SW 정글] 5/20 운영체제 - 스케쥴 배운거 Scheduling Criteria CPU utilization(이용료) * CPU입장 - keep the CPU as busy as possible - CPU가 쉬지 않고 일한시간 Throughput(처리량) * CPU입장 - 주어진 시간동안 얼마나 일했는지 Turnaround Time * 사용자 입장 - CPU가 들어오고 나가는 동안의 시간 (ready + running time) Waiting Time * 사용자 입장 - ready queue에서 기다리는 시간 Response Time * 사용자 입장 - CPU를 처음 얻기까지의 시간 Scheduling Algorithms FCFS(First-Come First-Served) 먼저 온놈 먼저 해주기 비선점형(non preemptive) 알고리..
[SW 정글] 5/19 운영체제 - 프로세스, 스레드, 스케쥴러 배운거 운영체제란 자원을 효율적으로 관리해주고, 컴퓨터 시스템을 편리하게 사용하게 도와주는 것이다. 운영체제의 분류에 따른 종류 동시작업 가능 여부에 따른 분류 1) Single Tasking (단일 작업) - 한번에 하나의 작업만 처리 ex) MS-DOS 2) Multi Tasking (다중 작업) - 동시에 두개 이상의 작업 처리 ex) MS-Windows, UNIX ... 사용자의 수에 따른 분류 1) Single User (단일 사용자) - 혼자 사용 ex) MS-DOS, MS- Windows 2) Multi USer (다중 사용자) - 2명 이상 사용 ex) UNIX, NT Server 처리방식에 따른 분류 1) Batch Processing (일괄처리) - 작업 요청의 일정량 모아서 한꺼번에 ..
[SW 정글] 5/14 TIL - what is HTTP? 배운것 HTTP란? Hyper Text Transfer Protocol의 약자. (Made by Tim Berners - LEE) HTML과 같은 하이퍼 미디어 문서를 전송하기 위한 Application(응용) Layer(계층) 프로토콜 초기에는 웹 브라우저와 웹 서버간의 커뮤니케이션을 위해 디자인 되었다. HTTP는 Stateless Protocol이다. 이는 서버가 두 요청간에 어떠한 데이터(상태)도 유지하지 않음을 의미한다. HTTP / 0.9 - One - Line Protocol 0.9는 매우 단순하다. 요청은 단일 라인으로 구성되며 리소스에 대한 경로로 가능한 request method는 GET이 유일했다. GET /mypage.html 응답 또한 극도로 단순하다. 아래와 같이 오로지 파일 내..
[SW 정글] 5/13 TIL - 웹서버 배운 것 웹 기초 웹 클라이언트와 서버는 HTTP(Hypertext Transfer Protocol)라고 하는 텍스트 기반 응용 수준 프로토콜을 사용해서 상호 연동한다. 웹 클라이언트(=browser)는 서버로의 인터넷 연결을 오픈하고 컨텐츠 요청을한다. 서버는 요청한 컨텐츠로 응답하고, 그 후에 연결을 닫아준다. 브라우저는 컨텐츠를 읽고 이것을 스크린에 보여준다. HTTP와 FTP(File Transfer Protocol)와의 주요차이점은 웹 컨텐츠는 HTML(Hyper Text Markup Language)이라는 언어로 작성될 수 있다는 것이다. 웹 컨텐츠 웹클라이언트와 서버에게 컨텐츠는 연관된 MIME(Multipurpose Internet Mail Extensions)타입을 갖는 바이트 배열이다...
[SW 정글] 5/12 TIL 네트워크 프로그래밍 배운것 클라이언트 - 서버 프로그래밍 모델 모든 네트워크 Application Program은 클라이언트-서버 모델이 기초하고 있다. 이 모델을 사용해서 Application은 한개의 서버 프로세스와 한 개 이상의 클라이언트 프로세스로 구성된다. 서버는 (1) 일부 리소스를 관리하고, (2) 리소스를 조작해서 클라이언트를 위한 일부 서비스를 제공한다. !! URL : Uniform Resource Locator 👈 이 리소스도 위 리소스에 포함된다. 예를 들어, 웹 서버는 디스크 파일들을 관리하고 클라이언트를 대신해서 이들을 가져오고 실행한다. 클라이언트 - 서버 모델에서 근본적인 연산은 트랜잭션이다. 클라이언트 - 서버 트랜잭션은 네 단계로 구성된다. 1) 클라이언트가 서비스가 필요로 할 때, 클라이언..

반응형