전체 글 (172) 썸네일형 리스트형 프로세스, 스레드 / 동시성 제어 그리고 운영체제 레츠고 2024. 12. 12. 13:06 저번학기에 배운 건데도 기억이 안나다니공부는 진짜 유산소와 같다계속 해야함면접용 CS 정리라서 운영체제 시험 준비를 하시는 분들은 안맞을 수도 있어용 프로세스와 스레드간단히 생각하면 프로세스>스레드. 프로세스 안에 스레드 있음프로세스실행 중인 프로그램의 인스턴스독립적인 메모리 공간을 가짐운영체제가 자원을 할당하는 기본 단위스레드프로세스 내에서 실행되는 작은 실행 단위같은 프로세스 내에서 다른 스레드들과 메모리 공유(코드, 데이터, 힙)공유 메모리 때문에 데이터 접근 시 동기화가 필요함스레드마다 독립적인 스택과 레지스터 가짐통신프로세스 간 통신 - IPC inter process communicaiton독립적인 메모리 공간을 사용하므로 통신 이 복잡함파일, 소켓, 파이프, 메시지 큐, 공유 메모리 등을 사.. HTTP 2024. 12. 12. 00:01 HTTP는 어플리케이션 계층의 대표 스택, 웹서비스 통신에 사용 됨TCP/IP 4계층 구조: 어플리케이션 - 전송 - 인터넷 - 링크 HTTP/1.0한 연결당 하나의 요청을 처리하도록 설계 됨RTT(패킷이 목적지에 도달하고 다시 출발지로 돌아오는 데 걸리는 시간)가 증가함왜? 서버에서 파일 가져올 때마다 TCP 3 way handshake 해야 됨매번 연결할 때마다 RTT가 증가하니까 서버에 부담이 가서, 이를 해결하기 위한 방법이 제시 됨이미지 스플리팅많은 이미지가 합쳐 있는 하나의 이미지를 다운받고, 이를 기반으로 background-image의 position을 이용해 이미지를 표기코드 압축: 개행 문자, 빈칸 없애서 코드 크기 최소화이미지 Base 64 인코딩: 이미지 파일을 64진법 문자열로 인.. TCP와 UDP부터 출발하는 컴퓨터 네트워크의 생활 2024. 12. 11. 22:24 근본 문제다컴퓨터 네트워크를 배운지는 1년이 훌쩍 넘었지만 기억해내야 한다 TCP연결지향적: 데이터 전송 전 송신자와 수신자 간의 연결 설정신뢰성 보장: 데이터가 손실되거나 순서가 어긋나면 재전송패킷의 순서를 보장하며, 모든 데이터가 정확히 도착하도록 확인네트워크 상태를 고려해 데이터 전송 속도 조정데이터 신뢰성 보장 때문에 헤더가 크고, 추가적인 처리 과정이 있음예시: 웹 브라우징(HTTP, HTTPS), 이메일(SMTP), 파일전송(FTP)UDP연결 없이 데이터 전송데이터가 손실되거나 순서가 바뀌어도 이를 감지하거나 수정하지 않음헤더 크기가 작고, 추가적인 확인 과정 없이 전송 속도가 빠름예시: 실시간 스트리밍, 온라인 게임 TCP는 데이터를 순서대로 보장할 수 있는 이유가 뭘까?시퀀스 번호TCP는 .. [백준] 22233 가희와 키워드 / 구현 / Python 실3 2024. 12. 11. 21:06 "시간초과의 늪"https://www.acmicpc.net/problem/22233예전 포스팅에서도 쓴 적이 있는데파이썬에서 시간초과가 뜨면 input 대신 sys.stdin.readline을 쓰라는 교훈을 얻었던 적이 있다. 문제는 정말 간단하다 메모장에 적은 키워드를 set으로 입력받고,블로그에 글을 m개 적을 때마다콤마를 구분으로 입력을 분리해서 임시 set을 만든 후메모장 set에서 현재 글에 입력한 단어 임시 set을 빼준다그리고 현재 메모장의 길이를 출력한다 python의 set을 잘 쓰면 된다그런데 입력 받는 부분이 잘 구현되어야 하는 것 같다그것 때문에 시간초과가 너무 많이 발생해서, 결국 다른 블로그를 봤는데코드 구조는 똑같은데 입력 부분만 달랐다 import sysinput = sys... [백준] 17266 어두운 굴다리 / 이진탐색 / Python 실4 2024. 12. 11. 20:16 오랜만입니다. 아직 학부생이라 기말고사 공부하다 늦었음 https://www.acmicpc.net/problem/17266 가로등 높이만큼 왼쪽 오른쪽으로 빛이 퍼지는 데, 0~n 구간을 빠짐없이 빛으로 덮을 수 있는 최소 가로등 높이를 구해야 함 while문으로 이진탐색을 해야 풀리는 문제더라구요 left, right를 두고 역전되는 시점에 while문을 종료합니다 높이 h를 left right의 중간값으로 잡고,현재 높이에서 커버 가능한 구간의 끝점을 잡아서 비교합니다 가로등 위치 for문을 돌면서현재 커버 가능한 구간의 끝점을 가로등 위치+가로등 높이 h로 업데이트합니다만약 커버 가능한 구간의 끝점이 가로등 위치 - 가로등 높이 h보다 작은 경우,이전 가로등 커버 범위와 현재 가로등 커버 범위 사이.. Lec16.Optimization (1) - 14주차 2강 2024. 12. 10. 23:32 12월 4일, 14주차 2강* 개인 공부를 위해 정리한 것입니다. 정확한 내용은 꼭 본인이 공부하는 교재를 참고하시기 바랍니다.middle-end optimizer: 중간표현을 입력받아 효율적인 코드로 변환하는 역할.코드 의미를 보존하면서도 불필요한 중간 변수나 연산을 제거해 최적화된 결과 생성코드 최적화 방법공통 부분식 제거표현식 E가 프로그램 내에서 한 번 계산된 이후, 해당 변수 값이 변경되지 않았다면 E는 공통 부분식으로 간주동일한 계산 반복할 필요 없이, 이전 계산 결과 재사용해 프로그램 최적화copy propagationu=v와 같은 복사문 이후, u가 재정의 되지 않는 한 u 대신 v를 사용하는 최적화 기법중간 변수 없이 값 바로 사용하는 방식, 코드 간결성과 실행효율 높임불필요한 변수 제거.. Lec15.lR Translation (2) - 14주차 2강 2024. 12. 10. 23:09 부제: Control-Flow Graph 14주차 2강. 2024.12.04. three address code - 각 식이 최대 3개의 피연산자를 갖도록 함. 단순한 연산 단위로 분해해 분석과 최적화 용이하게.global optimization을 효과적으로 수행하기 위해 3주소 코드를 CFG로 변환함. CFG는 프로그램 제어 흐름을 그래프로 표현한 구조. 최적화와 정적 분석을 위해 사용.Node는 Basic Block을 나타냄. 분기 없이 연속적으로 실행되는 명령어 집합Edge: Basic Block 간의 Control Flow. 조건문, 반복문의 흐름에 따라 블록이 연결됨.basic block은 분기가 없는 명령어의 최대 연속 집합. 중간에서 흐름이 끊기지 않고 처음부터 끝까지 순차적 실행.basic.. Lec14.IR Translation (1) - 14주차 1강 2024. 12. 10. 22:34 부제: Automatic Translation12월 2일, 14주차 1강* 개인 공부를 위해 정리한 것입니다. 정확한 내용은 꼭 본인이 공부하는 교재를 참고하시기 바랍니다.컴파일러 디자인의 복잡도를 줄이기 위해 IR을 사용한다x=0, t1=0x에 t1 값을 할당t3에 x값을 할당t4에 1을 할당t2에 t3과 t4의 합을 할당t2를 write한 후 정지초기화, sum=0, i=02:SKIP: 반복문 시작조건 검사t4에 i값 복사t5에 10 복사t3에 t4조건이 거짓이면 3으로 점프반복문 본문sum=sum+i를 계산해 sum에 저장i++ 연산을 수행반복문 시작으로 돌아가기 위해 goto23:SKIP: 반복문 종료출력 및 종료sum값을 출력하고 HALT 소스 언어과 타겟언어 사이의 자동변환 절차를 정의S: 변.. 이전 1 ··· 9 10 11 12 13 14 15 ··· 22 다음