본문 바로가기

반응형

전체 글

(102)
[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) 클라이언트가 서비스가 필요로 할 때, 클라이언..
[SW 정글] 웹서버 구현 error - 403 Forbidden , Tiny couldn't read the file: ./ (feat, c) 이번 주차 과제는 웹서버를 직.접 구현하는 거다. 하는 도중 에러는 안나지만 페이지에 접속하면 아래와 같은 화면이 나온다. 찾아본 결과 // Analysis HTTP URI int parse_uri(char *uri, char *filename, char * cgiargs) { char *ptr; // 실행파일의 홈디렉토리는 /cgi-bin이라고 가정한다 if(!strstr(uri, "cgi-bin")){ // if for static content strcpy(cgiargs, ""); // delete cgi args strcpy(filename, "."); // uri를 ./index.html같은 상대 리눅스 경로이름으로 변환한다. strcat(filename, uri); // strcat(*str1..
[SW 정글] 5/7~11 TIL 가상메모리 - 주소번역, TLB, 메모리 계층구조, malloc 구현 말록 설명하기에는 내가 아직 말록에 대한 지식이 부족한것 같다. 정리를 잘한 동기의 주소를 첨부한다. https://wonyoung2257.tistory.com/87 그런 사람 없겠지만, 나의 코드가 궁금한 사람을 위해 링크를 남겨놓겠다. https://github.com/dbsgur/malloc-lab/blob/main/mm.c 주소 번역 주소번역은 N-원소 가상주소공간 (VAS : virtual address space)와 M-원소 물리 주소 공간(PAS : Pysical Address Space)의 원소들간의 매핑이다. PTBR(Page Table Base Register)은 현재 페이지 테이블을 가리킨다. n비트 가상 주소는 두개의 컴포넌트를 가진다. : p비트 가상 페이지 오프셋(VPO:Virt..
[SW 정글] 5/6 TIL 가상메모리 가상 메모리 : 가상 메모리 또는 가상 기억 장치(가상기억기, virtual memory, virtual storage)는 메모리 관리 기법의 하나로, 기계에 실제로 이용 가능한 기억 자원을 이상적으로 추상화하여 사용자들에게 매우 큰 (주) 메모리로 보이게 만드는 것 주기억 장치 용량이 작기 때문에 보조기억장치를 마치 주기억 장치 처럼 사용하여 주기억 장치의 공간을 확대하는 효과를 내기 위한 기억 장치 관리 방법 물리 및 가상 주소 방식 CPU가 메모리에 접근하는 가장 자연스러운 방식은 물리주소를 사용하는 것이다. 위와 같은 접근 방법을 물리 주소 방식이라한다. 실행과정은 CPU가 로드 인스트럭션을 실행할때 유효 물리 주소를 생성 -> 이것을 메모리 버스를 거쳐서 메인 메모리에 전달 -> 메인 메모리는 ..
[SW 정글] 5/5 TIL - malloc 구현 왜 하냐? (feat, c) 이번주차 과제는 c로 malloc, free 구현이다. 즉, 동적할당을 직접 구현해보는 것이다. 하라는데 하기가 싫다. 적어도 내가 왜 이걸 구현 해야하는지, 무슨 도움이 될지 알아야겠다. 그래서 가상메모리의 정의와 기능, 중요한 이유. 그리고 동적할당을 구현했을 때 앞으로의 나에게 무슨 도움이 될지 알아보았따. 한 시스템의 프로세스들은 CPU와 메인 메모리를 다른 프로세스들과 공유한다. 그러나, 말이 쉽지 메인 메모리를 공유하는 것은 어려움을 많이 만난다. 예를 들어, CPU에 대한 요구가 증가함에 따라 프로세스들은 점점 느려진다. 또한, 너무 많은 프로세스들이 너무 많은 메모리를 요구하면 일부는 실행할 수 도 없게 된다. 또 다른 예로, 메모리는 손실에 취약하다. 만일 일부 프로세스가 무심코 다른 프..

반응형