전체 글

전체 글

    [OS] 3. Process Management

    프로세스란? 작업(Job) / 프로그램(Program) 실행할 프로그램 + 데이터 시스템에 실행 요청 전의 상태 (아직 디스크에 있는 상태) 프로세스(Process) 실행을 위해 시스템(커널)에 등록된 작업 (메모리를 할당 받았을 때 = 실행중인 프로그램) 시스템 성능 향상을 위해 커널에 의해 관리된다. 자원의 개념 커널의 관리 하에 프로세스에게 할당/반납되는 수동적인 객체를 의미한다. 자원은 H/W, S/W로 분류될 수 있다. H/W : 프로세서, 메모리, 디스크, 모니터 S/W : 메시지, 신호, 파일, 응용 프로그램 Process Control Block (PCB) 말 그대로 프로세스를 제어하는데 필요한 정보를 모아둔 블록을 의미한다. OS가 프로세스를 관리하기 위해 필요한 정보를 저장하는데 주 역..

    [프로그래머스] 디스크 컨트롤러

    https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 그림과 같은 요청이 들어왔을 때 (시작 시간, 수행 시간)을 고려하여 적절히 배치하였을 때, 총 수행시간의 평균이 최소가 되도록 하는 경우를 찾으면 되는 문제이다! (한 번에 하나씩만 수행 가능) 위 방법은 그저 들어온 순서대로 즉, FIFO의 형태로 수행된 결과이다. 물론 최적의 값은 아니다. 이렇게 수행시간이 짧은 순서대로 배치하여 진행하는 것이 최소의..

    [프로그래머스] 표 편집

    https://programmers.co.kr/learn/courses/30/lessons/81303?language=swift 코딩테스트 연습 - 표 편집 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z"] "OOOOXOOO" 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"] "OOXOXOOO" programmers.co.kr 마치 엑셀에서 표를 편집하는 것 처럼 방향키 이동, 삭제, 되돌리기를 구현하는 문제이다! 정확성 + 효율성까지 보는 문제이기 때문에 코드의 효율도 고려하여 작성해야 한다. 우선 예시를 먼저 보자. n = 8, k = 2, cmd = ["D 2","C","U 3","C","D 4","C"..

    [프로그래머스] 삼각 달팽이

    https://programmers.co.kr/learn/courses/30/lessons/68645?language=swift 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 주어진 그림을 보면 규칙은 다음과 같다. 이렇게 구성한 뒤에 각 행을 이어 붙이면 정답이 된다! [[1],[2,9],[3,10,8],[4,5,6,7]] 이에 우선은 방향이 세 가지 있다는 것을 알 수 있다. 1. 상단에서 좌측 하단으로 2. 좌측에서 우측으로 3. 우측하단에서 상단으로 이렇게 방향을 반복하게 된다. 방향은 아래와 같이 세팅해두..

    [Swift] 내가 보려고 정리하는 Optional

    지금껏 배웠던 다른 프로그래밍 언어들과 달리 Swift가 가지는 특색이라고도 생각하는 Optional에 대해 간략하게 정리해볼 것이다. Optional의 구조 Optional은 값이 있을 수도 있고, 없을 수 있는 타입이다. 그 내부 구조를 한 번 살펴보자. @frozen enum Optional { case none case some(Wrapped) } @frozen : enum에 더 이상 case를 추가하지 않겠다는 것을 의미 : Generic 타입이다. wrapped이라는 건 말그대로 감싸져있다는 것이기에 이후 사용시 풀어서 사용해줘야 한다. enum 구조이기 때문에 ?를 써서 사용하는 방법과는 다르게 표현할 수 있다. // 값이 있는 경우 let optionalValue: Optional = Op..

    [Network] 전송계층 4

    http://www.kocw.net/home/cview.do?mty=p&kemId=1169634 컴퓨터네트워크 인터넷을 동작시키는 컴퓨터네트워크 프로토폴을 학습한다. www.kocw.net Congestion Control이란? 이전에도 봤듯이, 모두가 함께 사용하는 네트워크를 혼잡하게 만들면 안된다. 즉, 요청(=전송량)을 나 혼자 살자고 네트워크에 쏟아부으면 안된다는 것이다. 이기적으로 행동해서 많은 양을 한 번에 전송하게 되면 결국 네트워크가 막히게 되고, 본인에게도 좋지 않은 결과를 가져다주게 된다. 결론적으로 전송량을 관리하는 것은 매우 중요한 요소 중 하나라는 것이다. 이에 등장하는 개념이 TCP Congestion Control, 말 그대로 TCP의 혼잡을 제어하는 역할을 한다. 즉 전송량을..