👨‍💻 CS지식

    [ KOCW 운영체제와 정보기술의 원리 | 반효경 ] Process Synchronization ( Semaphores)

    ✨ Semaphores Two Types of Semaphores Counting Semaphore 도메인이 0 이상인 임의의 정수 값 주로 resource counting에 사용 Binary semaphore (=mutex) 0 또는 1 값만 가질 수 있는 semaphore 주로 mutual exclusion (lobk/unlock)에 사용 공유 자원을 획득하고 반납하는 것을 추상화시켜서 진행해준다 두 가지 atomic 연산에 의해서만 접근 가능 P(S): while (S P(Q); P(S) ... V(Q); V(S); 두 Process가 각각 하나씩 자원을 획득한다 (Process1은 S, Process2는 Q) 그런데 둘 다 다음으로 필요한 자원은 진작 서로가 획득해버린 자원이다. 그렇게 계~~속 ..

    [ KOCW 운영체제와 정보기술의 원리 | 반효경 ] CPU 스케쥴링

    CPU-burst Time CPU-burst가 짧다는건 중간중간 I/O가 자주 끼어든다는 말. 이게 긴 경우도 있고 짧은 경우도 있다. 따라서 CPU 스케쥴링이 필요하다. CPU-burst가 짧다는 말은 사람이랑 자주 인터렉션을 하는 것. 이런 잡에 CPU를 늦게 넘겨주면 사람이 답답하다. 결정해야 하는 것 누구에게 CPU를 줄것인가 줬으면 계속 쓰게 할 것인가.중간에 뺏어올 수도 있게 할 것인가 비선점형 | nonpreemptive scheduling 선점형 | preemptive scheduling 만약 뺏지 않고 끝까지 CPU를 보장해야 한다면, CPU-burst가 긴 애들이 CPU를 넘겨받았을 때 지나치게 오랜 기다림이 된다. 스케쥴링 알고리즘의 평가 성능 척도를 통해 평가한다. 시스템 입장에서의..

    [ SNU 강의 ] CPU Scheduling | 쉽게 배우는 운영체제 8,9주차

    Resource preemtible resource 양보가 가능한 resource 한 프로세스가 점유한 상태에서 다른 프로세스에게 양보할 수 있는 자원 CPU (양보해야 할 시점이 됐을 때 state를 안전하게 대피시키고 양보 memory nonpreemtible resource 한 프로세스가 점유하면 사용을 마칠 때까지 다른 프로세스에게 양보할 수 없는 자원 프린터 CPU Burst 스케쥴링을 하려고 해도 기준(단위)가 있어야 한다 이를 정한 것이 CPU Burst 유저 프로그램이 일을 수행하다가 blocking system call을 한다 그러면 io에서 wait를 하게 됨 wait를 하는 동안 waiting 상태에 가있다 원하는 상태가 오게 되면 다시 프로그램을 수행시킴. 이렇게 프로그램의 수행을 ..

    [ SNU 강의 ] Multithreading | 쉽게 배우는 운영체제 7주차

    Multithreading Server Architecture 서버의 내부 무한루프를 도는 루프가 있다. request가 도착했을 때 깨어날 수도 있고 일정한 주기로 깨어날 수도 있다. request queue에 request message가 있으면 이를 따와서 처리하고 결과를 돌려준다 두 가지 패턴이 존재 iterative server 서버가 스스로 request를 받고 처리하는 것 concurrent server message queue에서 메세지를 따오면 서버가 직접 처리하는 것이 아니라 그 일을 처리하는 woker process를 fork해서 얘가 처리하게 하는 것 그 때 server은 service로부터 자유로워지니까 다시 request queue에서 가져오면 된다 질문 concurrent su..

    [ SNU 강의 ] 운영체제의 기초 | 쉽게 배우는 운영체제 6주차

    OS는 Complexity 소프트웨어 시스템이다. 이를 해결하는 우리의 무기 Abstraction 이를 시스템 디자인에 적용하면 Layerd Arckitecture가 나옴 바닥은 하드웨어, 이 위에는 OS, 그 위에 라이브러리/미들웨어, 이 위에 애플리케이션들이 수행된다 여기서 각 레이어의 역할은 그 아래 복잡한 것들을 보이지 않게, 꼭 필요한 인터페이스만 위로 보이게 한다 레이어와 레이어 사이에 있는 층 API(Application Programming Interface) | 계층과 계층 사이의 통신을 위해 정의된 호출 규약 각 레이어가 만나는 곳에 존재한다. 이와 같이 아래 계층의 복잡함을 추상화시켜서 보여주는 것이 Abstraction 이 결과로 레이어드 아키텍쳐가 존재하게 된다. Layering ..

    [ SNU 강의 ] 운영체제의 기초 | 쉽게 배우는 운영체제 5주차

    0. Process Scheduling ✍ Dispacher 유저 프로그램과 유저프로그램 사이에서 == 프로세서 A에서 B로 컨트롤을 넘겨주는 역할을 한다. dispacher가 시행된다는 것은 1. 커널로 excution control이 진입하는 것. 2. 그리고 user process로 excution control이 넘어가는 것. 어떻게 user mode excution에서 커널모드 excution으로 컨트롤이 넘어갈까? 인터럽트 코드를 작성할 때 함수가 넘어가는 것 : function call 하지만 dispacher가 시행될 시 user mode 함수가 아닌 커널 모드 함수가 실행되어야 한다. 커널 모드 함수가 시행되려면 모드 체인지가 일어나야 하는데 모드 체인지가 일어나려면? => 인터럽트가 있..

    📢 공지

    개발자라면 꼭 알아야 할 CS 지식에 대해 소개합니다. 오픈되어있는 대학 강의. 들었던 강의. 책 내용. 인터넷, 인프런, 유투브 가리지 않고 학습한 내용을 올립니다. 잘못된 정보가 있으면 꼭 댓글로 말씀 부탁드립니다. 유료 강의들은 저작권 문제로 비공개 해두었습니다. 참고해주세요

    [ 네트워크 ] TCP/IP 네트워크 기초 상식

    1. 서버(제공자)가 있고 클라이언트(사용자)가 있다. 클라이언트가 서버에 접속한다. 클라이언트(브라우저)가 web 서버같은것과 작용해 받아온 내용을 화면에 보여주는 식으로 동작한다 프로토콜 : 약속 명령어로 접속하고 응답할 내용을 정한 것들을 말한다. 대표적으로 1. HTTP HTTP는 하이퍼텍스트. HTML같은 문서를 주고받고 보여줄 수 있는 프로토콜 2. 이메일 보낼때는 SMTP : 메세지를 전달해주기 위한 프로토콜 받을때는 PoP3 이런게 다 약속으로 정해져있다. 3. FTP 파일을 주고받을 때 사용하는 프로토콜 사실 요즘은 많이 사용하지 않는다. 대표적으로 HTTP를 이해해주면 됨. 2. HTTP는 GET으로 요구한다 200 ok는 정상적 404는 page가 없는 것 403은 권한 관련 erro..