CS

    5. CPU 스케줄링

    CPU 스케줄링 프로세스에서 실행하는 작업은 두 가지로 나뉜다. 첫 번째는 cpu만 실행하는 작업이고, CPU burst라고 한다. 두 번째는 IO만 실행하는 작업이고, IO burst라고 한다. 보통 이 두 개가 섞여있는데, CPU는 짧게 쓰고 중간에 IO에 많은 시간이 필요한 작업을 I/O bound process라고 하고, CPU를 아주 길게 쓰는 계산 위주의 작업을 cpu bound process라고 한다. 이런 여러 작업들이 섞여 있기 때문에 cpu 스케줄링이 필요하다. cpu 스케줄링은 cpu와 IO 장치 등의 시스템 자원을 골고루 효율적으로 사용하는 것을 목표로 한다. 여기서 cpu 스케줄러라는 개념이 등장하는데 cpu 스케줄러는 어떠한 장치가 아니라 운영체제 상의 코드를 의미한다. cpu ..

    4. 프로세스 생성

    4. 프로세스 생성

    프로세스 생성 부모 프로세스가 자식 프로세스를 생성하는 것을 프로세스 생성이라고 한다. 리눅스, 유닉스 계열의 OS에서는 최초의 프로세스 init이 존재하고, 그 프로세스가 다른 자식 프로세스를 생성할 수 있고 그 자식 프로세스는 또 다른 자식 프로세스를 생성할 수 있다. 이 때 프로세스의 생성에는 사용자 프로그램이 아니라, 운영체제의 시스템 콜을 통해서만 가능하다. 이렇게 생성된 프로세스는 트리 구조를 형성하고 각자 고유한 번호인 pid를 가지게 된다. 프로세스의 생성은 두 가지 단계로 나뉘어진다. 1. 자식 프로세스가 부모 프로세스의 code, data, stack 그리고 cpu 문맥(프로그램 카운터), 운영체제 데이터, pcb등 문맥을 모두 복사한다. 2. 자식 프로세스는 복제 후 공간에 새로운 프..

    3. 프로세스

    3. 프로세스

    프로세스와 문맥 프로세스는 실행중인 프로그램이다. 프로그램이 실행되면서 변경되어 온 상태들이 있을텐데 그것들 현재에 나타낸 것을 프로세스의 문맥이라고 한다. 프로세스 문맥은 3가지로 나뉘어진다. cpu 수행 상태를 나타내는 하드웨어 문맥 - 프로그램 카운터, 각종 레지스터 프로세스의 주소 공간 - code, data, stack 프로세스 관련 커널 자료 구조 - PCB, 커널 stack 프로세스의 상태 프로세스의 상태는 크게 3개로 나뉜다. Running - cpu를 잡고 instruction을 수행중인 상태 Ready - cpu를 기다리는 상태(메모리 등 다른 조건을 모두 만족하고 언제든 cpu를 받으면 Running 할 수 있는 상태) Blocked - cpu를 주어도 당장 instruction을 수..

    2. 시스템 구조와 프로그램 실행

    2. 시스템 구조와 프로그램 실행

    컴퓨터 구조 CPU cpu에는 저장 장치인 레지스터, mode bit, interrupt line 등이 존재한다. 레지스터는 데이터를 저장하는 역할을 하고, mode bit은 현재 커널 모드(0)인지 사용자 모드(1)인지를 나타낸다. interrupt line은 하드웨어나 소프트웨어의 인터럽트를 저장하는 공간으로, 이 공간에 인터럽트가 존재하면 운영체제에게 cpu를 넘겨주게 된다. Memory 메모리에는 사용자 프로그램과 운영체제가 저장되어 있으며 cpu가 메모리에 있는 사용자 프로그램을 번갈아가면서 실행한다. I/O device 입출력장치를 뜻하며, disk, 키보드, 프린터, 모니터 등이 해당된다. 각 입출력장치에는 local buffer와 device controller가 존재한다. device c..

    1. 운영체제 소개

    운영체제의 목적 1. 컴퓨터 시스템의 자원을 효율적으로 관리한다. -> 프로세서, 기억장치, 입출력 장치 등의 효율적 관리 2. 사용자간에 형평성 있게 자원을 분배한다. 3. 주어진 자원으로 최대한의 성능을 낼 수 있도록 한다. 운영체제의 분류 1. 동시 작업 가능 여부 - 단일 작업 : 한번에 하나의 작업만 처리한다. ex) MS-DOS - 다중 작업 : 동시에 두 개 이상의 작업을 처리한다. ex) UNIX, Windows 2. 사용자의 수 여러 계정을 만들어 동시 접근할 수 있는가에 대한 분류다. - 단일 사용자 ex) MS-DOS, Windows - 다중 사용자 ex) UNIX, NT Server ! Windows는 원격접속을 이용해 다중 사용자용으로도 사용할 수 있다. 3. 처리 방식 - 일괄 ..

    http 구조 정리

    http 구조 정리

    http란 ? http는 HyperText Transfer Protocol의 약자로, 인터넷 상에서 정보를 주고 받을 수 있는 프로토콜. 즉, 웹 상에서 서로 통신할 때 어떠한 방식으로 통신하자고 정해놓은 약속을 의미한다. http의 구조 http는 요청(Request)와 응답(Response)로 구성되어 있고, 클라이언트가 요청하면 서버가 응답을 하는 구조로 되어 있다. 또, http는 Stateless 이다. 즉 상태가 저장되지 않는다는 뜻이다. 각 요청과 응답은 독립적이며, 만약 서로 연관성있게 연결되어야 한다면(로그인) 세션 또는 쿠키를 이용한다. 이해를 돕기 위해 사진을 보면, http의 request는 세 가지 부분으로 이루어진다. start line header body 먼저 start li..