크래프톤 정글 5기/공부(20)
-
[PintOS] 1-1 Alarm Clock
GIT[thread.c, thread.h, timer.c, timer.h] 이론 영상 출처 : https://www.youtube.com/watch?v=myO2bs5LMak# Todo - Pintos uses busy waiting for alarm - Modify pintOS to use sleep/wake for alarm# Files to Modify- threds/thread- devices/timer # todo1. create sleep_list 2. create wake_up()3. create sleep()4. modify timer_sleep()5. modify timer_interrupt()6. modify thread_init()7. Function : 쓰레드 상태를 blocke..
2024.05.16 -
[PintOS] Project 1 키워드 정리 (Race Condition, Context Switching, PCB, Process State)
Race Condition Definition :- 두 개 이상의 프로세스가 공통 자원을 동시에 읽거나 쓰는 동작을 할 때, 공용 데이터에 대한 접근이 어떤 순서에 따라 이루어졌는지에 따라 그 실행 결과가 같지 않고 달라지는 상황 Case :- 여러 프로세스가 공유 데이터 또는 리소스에 접근하고 시스템이 해당 리소스에 대한 접근을 적절하게 제어하거나 동기화하지 않을 때 발생 => 데이터 손상, 충돌 또는 시스템의 의도하지 않은 동작 발생 가능 Reason :- 공유 자원에 대한 동시 접근 여러 쓰레드 또는 프로세스가 적절한 동기화 없이 공유 리소스에 접근 - 비원자적 작업 여러 단계로 구성되고 단계 사이에서 중단될 수 있는 작업은 비원자적 여러 쓰레드가 공유 리소스에서 비원자적 작업을 수행하는 ..
2024.05.10 -
CSAPP: Network Programming
1. Client - Server Programming Model - 모든 네트워크 Application : Client - Server Model → 1개의 Server ↔ 1개의 Client- 서버 : 일부 리소스 관리 / 조작 → 클라이언트에 서비스 제공ex) 웹서버 , FTP 서버, 이메일 서버웹서버 : 디스크 파일 관리 -> 클라이언트를 대신해 이들을 가져오고 실행FTP 서버 : 클라이언트를 위해 저장하고 읽어오는 디스크 파일 관리이메일 서버 : 클라이언트를 위해 읽고 갱신하는 스풀 파일 관리Client - Server Model의 근본적 연산 = Transaction* Transaction : DB의 상태를 변화시키기 위해 수행하는 작업의 단위 DB의 상태 변화 : SEL..
2024.05.07 -
[Webproxy-lab] Tiny Web Server
GIT 1. main()- 주어진 포트 번호로 listening socket 생성 후, 반복적으로 request 처리 2. doit()- HTTP request 처리 3. read_requesthdrs()- HTTP request Header 읽음 4. parse_uri()- URI 분석 5. get_filetype()- 파일 이름으로부터 파일 타입을 결정 6. serve_static()- 정적 컨텐츠를 제공 7. serve_dynamic()- 동적 컨텐츠 제공 8. cgi-bin/addr.c- 2개의 숫자를 더하는 CGI 프로그램 코드 9. home.html 10. localhost:[port number] access make./tiny [port number]Chrome ->..
2024.05.06 -
[Webproxy-lab] Echo server communication
GIT 0. echo 디렉토리 생성 및 Makefile 수정 # makefile (echo)CC = gccCFLAGS = -O2 -Wall -I .LIB = -lpthreadall: echoclient echoserverechoclient: echoclient.c csapp.o $(CC) $(CFLAGS) -o echoclient echoclient.c csapp.o $(LIB)echoserver: echoserver.c csapp.o $(CC) $(CFLAGS) -o echoserver echoserver.c csapp.o $(LIB)csapp.o: csapp.c $(CC) $(CFLAGS) -c csapp.cclean: rm -f *.o echoclient echoserver *~ 1. echoc..
2024.05.04 -
System Call (+ OS, Kernel)
OS (Operating system) Definition : - 컴퓨터 하드웨어와 사용자 사이의 인터페이스- 시스템 자원을 효율적으로 관리하여 응용 프로그램이 동작할 수 있게 하는 소프트웨어 Main Function :1. 자원 관리 CPU, Memory, Disk, 입출력 장치와 같은 시스템 자원 관리 다수의 프로그램 동시간대 진행, 각각의 프로그램 동작에 필요한 자원을 할당 및 해제하며 효율성을 높인다 2. 프로세스 관리 프로세스 생성 / 실행 / 정지 / 중단 / 스케줄링 등의 작업 관리 다수의 프로세스가 동시간대에 진행되도록 하고, 각 프로세스에 자원을 할당 및 해제하며 효율성을 높인다 3. 파일 시스템 관리 파일과 디렉터리 생성 / 읽기 / 쓰기 / 삭제 등의 파일 ..
2024.05.01