전체 글

전체 글

    [Operating System] Segmentation

    세그멘 테이션 사용자 프로그램은 세그먼테이션 기법을 이용하여 프로그램과 그 데이터들이 여러 세그먼트로 나눔 하지만 프로세스를 물리적인 단위인 페이지 말고 논리적 내용 단위인 세그먼트로 자를 수 있는 세그먼테이션 방법이 있다. 세그멘테이션은 프로세스를 세그먼트의 집합으로 생각한다. 그래서 세그먼테이션은 물리적인 크기의 단위가 아닌 논리적 내용의 단위(의미가 같은)로 자르기 때문에 세그먼트들의 크기는 일반적으로 같지 않다. 세그먼테이션 번호와 오프셋 두개의 영역으로 구성 세그먼트 기반 주소 변환 가장 왼쪽의 n비트는 세그먼트 번호이고, 가장 오른쪽 m비트는 오프셋인 n+m비트로 이루어진 주소 n= 4 , m=12 세그먼트 최대크기는 4096 주소변환 과정 논리주소의 왼쪽 n 비트를 세그먼트 번호로 추출 이 ..

    [Operating System] Paging Mechanism

    페이징 메카니즘 고정분할/ 가변분할 기법은 내부단편화, 외부 단편화로 문제점이 존재함. 페이징은 이런 단점 해결 위해 고안된 방식이다. 페이징 사용시 외부단편화는 발생하지 않으며 내부 단편화는 아주적은횟수 발생함 paging이란 memory 가상화에서 가상 주소와 물리 주소를 mapping시킬 때에 page frame을 단위로 하는 방식이다 Paging이란 가상주소공간을 일정한 크기의 Page 로 나누는 것을 말한다. 가상 메모리 - 페이지(블록) 가상주소공간의 Page가 물리적 메모리의 어떤 Page Frame에 저장되는지를 Page Table 에 기록한다. 물리 메모리 - 프레임(블록) 물리적 메모리는 이런 Page들을 담기 위한 영역으로 나누는데 이를 Page Frame 페이지 테이블 OS는 각 프..

    2022년을 돌아보며

    나외에 모두가 너무 열심히 사는 것 같았다. 2021년에 군대를 전역하고 2학기를 다녔는데 생각보다 군버프 성적은 좋지 않았다. 3점후반이였지만 만족스럽지 못했고 2022년 3학년을 죽었다생각하고 다니기로 마음먹었다. 22년이 시작되기 전 가장크게 계획했던 것은 백엔드 공부 및 프로젝트 , 수상 , 학점 이였다. 현재 2022년 12월 29일에 돌아본 22년은 계획을 100% 이뤄냈다고 생각한다. 상반기 몸편하고 마음편한 구청알바가 뽑혀서 보건소에서 달달하게 일을 하였다. 죽음의 리눅스시스템프로그래밍을 들었다. 하루에 10시간씩 코딩한것 같다. 결국 A+을 받았다. 타 과목을 상대적으로 부족하게 해서 그런지 1학기 학점은 3.96으로 마감하였다. 학과 근로가 뽑혔다. 그래서 금전적으로 여유가 생겼다. 하..

    [우아한테크코스 5기] 백엔드 최종 합격

    [우아한테크코스 5기] 우아한테크코스 합격 자소서 회고 [우아한테크코스 5기] 백엔드 최종 합격 28일은 우아한 테크코스 최종 결과가 나오는 날이였다. 성적이의신청 때문에 학교에 들릴일이 있었는데 마침 연구실도 들릴겸 거기서 우테코 5기 최종 결 eastc.tistory.com 28일은 우아한 테크코스 최종 결과가 나오는 날이였다. 성적이의신청 때문에 학교에 들릴일이 있었는데 마침 연구실도 들릴겸 거기서 우테코 5기 최종 결과를 확인하였다. 오후 2시부터 너무너무너무떨렸다. 대학입시보다 더 떨렸고 먹은것도 없는데 토할 것 같은 기분이들었다. 그만큼 너무너무 고통스러웠다. 오후 2시 50분부터는 죽을거같았다. 진짜 시간이 이렇게 안가는구나를 느낄수 있었다. 오후 2시 55분부터는 시계의 시간 초만 봤다. ..

    [우아한테크코스 5기] 백엔드 최종 코딩테스트 후기

    전날 클라우드 시험을 치르고 새벽에 용산 아이맥스에서 아바타2를 시청 후 13시까지 잠실로 호다다다닥 가게 되었다. 가는 길에 유진이가 시험 볼 때 먹으라고 쿠키도 줬다. 잠실역에 내려서 롯데타워 방향으로만 가봤지 반대편으로는 처음 가보게 되었다. 가기 전에 근처 스타벅스에 들려서 아이스 아메리카노 그란데 사이즈를 시켰다. 시험 때 집중을 위해서.. 근데 뭔가 느낌이 주변에 나랑 비슷한 우테코 최종 코딩테스트를 보러 가는 사람들이 많은 것 같았다. 느낌적인 느낌. 그리고 건물로 들어가는데 모두 하나같이 나처럼 백팩에 긴장한 표정으로 있었다. 그렇게 잠실 작은집 7층에 내렸고 바로 사진 하나 찍어줬다. 뭔가 우아한 형제들에 취업하러온 느낌이랄까 그래서 바로 사진 하나 찍고 인스타에 스토리 한방 남겨줬다. ..

    [Operating System] Address and Memory

    EARLY SYSTEM 컴퓨터의 물리메모리 : 초기 운영체제 메모리에 상주하는 루틴의 집합 물리메모리에 하나의 실행중인 프로그램이 존재 특별한 가상화에 대한 개념 없었음 STACK, HEAP, DATA, TEXT MULTI PROGRAMMING 여러 프로세스가 실행 준비 상태 OS 는 프로세스를 CPU에게 전환하면서 실행 이 과정을 계속 반복하는 것은 TIME SHARING(시분할) 기존에 실행되던 프로세스 상태를 디스크에 저장하는데 디스크에 저장하는것은 IO가 발생하므로 느리다. 또한 다르프로세스 메모리공간침법 위험도이썽서 프로세스간 ISOLATION이 보장안되었다. Virtual Memory 이런 문제 해결 위해 메모리 가상화 개념 도입 각 프로세스마다 가상의 메모리 주소 체계를 도입해 실제 물리 메..

    [Operating System] 공평한 스케줄러

    Proportional Share 비례 지분 = 공정 배분 특정 비율로 cpu를 배분하는 스케줄러 Lottery Schedueling 복권 확률에 의한 ticket = lottery ticket 프로세스가 받아야할 자원의 몫 a가 75 b가 25장이면 a는 75%cpu 할당 공평하니까 이렇게함 lottery scheduling time quantum이 끝날 때 마다 확률적으로 ticket을 선택 추첨방식 ticket currency 기법 사용자가 추첨권을 화폐가치로 티켓을 마음대로 할당함 시스템은 화폐가치를 글로벌 화폐가치로 변환 USER ↔ JOB ↔ PROCESS 이렇게 하는 이유는 프로세스 개수와 관련이있다. 3개면 0.333이런식으로 되기때문 .. TICKET TRANSFER 프로세스는 다르프로세..

    [Operating System] MLFQ Multi-level Feedback Queue Scheduling

    Multi-level Feedback Queue Scheduling RR은 응답시간은 단축시키나 반환 시간은 최악(너무 자주 잘라서) MLFQ는 이러한 RR의 한계점을 극복하기 위해 고안해낸 방법이다 RR의 장점인 짧은 평균 응답 시간은 유지하면서, RR의 단점인 짧은 task의 불리함을 해결하자는 것이다. RR에서는 Queue를 1개만 운용했다면, MLFQ는 다양한 Time Quantum을 가지는 여러 Queue를 동시에 운용한다. Turn around time의 최적화 → 짧은 작업 우선 MLFQ 는 대화식 사용자에게 응답시간을 최소화 → 빠르시스템인것처럼 느끼게 여러 개의 Queue는 상단에서 하단으로 내려갈수록 Time Quantum은 길어지고, 이는 당연히 process가 CPU를 점유했을 시 ..

    [Operating System] 스케줄링

    단기, 중기 ,장기 스케줄링 장기 스케줄링 프로세스가 cpu에 의해 실행될 수 있는 자격을 부여할지 말지를 결정 중기 스케줄링 프로세스 이미지 전부 혹은 일부가 주 메모리에 올라올 수 있는 자격을 부여할지 말지 결정 단기 스케줄링 cpu에 의해 실행될 다음 번프로세스로 어떤 프로세스를 선택할지를 결정 ready 상태를 많이 만들어서 cpu가 일하도록 만든다. Workload assumptions workload 일련의 프로세스들이 실행하는 상황 프로세스가 얼마나 cpu를 차지하는지 가정(비현실적) 각 작업은 동일한 시간동안 실행 모든 작업은 같은 시간에 도착 각 작업은 시작되면 완료될때까지 실행 모든 작업은 cpu만 사용(io 없다고 가정) 각 작업 실행 시간은 알려져 있다고 가정 평가 기준 Turn a..

    [Operating System] 프로세스 실행

    for and exec 함께 사용하지 않은 이유 fork와 exec을 분리시켜 새 프로그램을 실행하기 전 다양한 설정과 IO redirection과 pipe를 가능하게 하려고 프로세스 실행 OS가 프로그램 실행을 시작하려면 process list에 새로운 항목을 생성한다. 이후 메모리 페이지 할당. 디스크에있는 프로그램 실행파일을 메모리페이지에 로드. 진입점으로 포인터를 위치한다. 문제점 프로세스가 원치 않는 일을 하지 않는다는 보장할 수 있는가? 프로세스 실행 시 OS가 이를 중단시키고 다르 프로세스를 실행시킬수 있는가?(time sharing) OS가 실행 프로그램 제어못하면 OS가아니라 라이브러리 문제1 : 제한된 연산 프로세스가 특수한 형태의 연산을 수행시키려면 ? IO, 메모리 접근 프로세스에게..