목록CS이론 (7)
코드와이

프로세스 프로세스의 문맥(context) CPU 수행 상태를 나타내는 하드웨어 문맥 '현재 시점의 이 프로세스가 instruction을 어디까지 수행했는가' 를 알기 위해 register 에 어떤 값을 넣고 있었고 Program Counter 가 어디(프로세스의 주소공간)를 가르키고 있었는지를 알 수 있는 것 프로세스의 주소공간 code data stack 프로세스 관련 커널 자료 구조 PCB(Process Control Block) Kernel stack Time Sharing, Multitasking 프로세스들이 번갈아 가면서 실행하기 때문에 현재 프로세스의 상태를 백업해 놓아야 다음번 CPU 를 잡았을 때 잘 실행할 수 있다. 프로세스의 상태 Running : CPU 를 잡고 instruction ..
동기식 입출력 & 비동기식 입출력 동기식 입출력 I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감 구현방법 1 I/O 가 끝날 때까지 CPU 를 낭비시킴 매시점 하나의 I/O만 일어날 수 있음 구현 방법 2 I/O 가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗음 I/O 처리를 기다리는 줄에 그 프로그램을 줄 세움 다른 프로그램에게 CPU를 줌 비동기식 입출력 I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감 두 경우 모두 I/O 의 완료는 인터럽트로 알려줌 [간단 설명] Synchronous : 실제 하드웨어를 통해 I/O 작업이 완료된 걸 확인한 후 다음 작업을 하는 것 구현방법 1 을 사용한다면 CPU 와 I/O 장치가 낭비..
컴퓨터 시스템 구조 : 컴퓨터(CPU + Memory) + I/O device(Disk, 모니터, 키보드, 마우스 ... ) Device Controller I/O device Controller 각각의 I/O device 들에 붙어있는 작은 CPU 제어 정보를 위해 control register, status register 를 갖는다. local buffer(device controller 의 작업 공간) 를 갖는다. I/O 는 실제 device 와 local buffer 사이에서 일어남 Device controller 는 I/O 가 끝났을 경우 interrupt 로 CPU 에 그 사실을 알린다. I/O 수행 모든 입출력 명령은 특권 명령 사용자 프로그램은 어떻게 I/O를 하는가? 시스템콜(Syste..
운영체제 운영체제? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 좁은 의미 : 커널 운영체제의 핵심 부분 항상 메모리에 상주하는 부분 넓은 의미 : 커널 뿐 아니라 각종 주변 시스템을 다루는 유틸리티들을 포함한 개념 (메모리에 상주하지 않는 별도의 프로그램들, 독립적인 프로그램들) 운영체제의 목적 자원을 효율적으로 관리하는 것 프로세서, 기억장치, 입출력 장치 등의 효율적 관리 주어진 자원을 최대한의 성능을 낼 수 있도록 도와준다. 사용자가 컴퓨터 시스템을 편리하게 사용할 수 있도록 환경을 제공 동시 사용자 / 프로그램들이 각각 독립적으로 수행되는 것 같은 환상을 제공 운영체제 분류 동시 작업 가능 여부 단일 작업 single tasking M..

웹 모바일 서비스 위 사진으로 웹 서버의 동작 흐름을 파악할 줄 알아야 한다. 정적 웹 페이지 컴퓨터에 저장된 텍스트 파일을 그대로 보는 것 HTML 동적 웹 페이지 저장된 내용을 다른 변수로 가공, 처리하여 보는 것 PHP, ASP(Active Server Pages), JSP
[프로그래밍] 객체지향 : 어떠한 객체, 사물을 중심으로 만드는 방법 절차지향 : 일련의 동작을 중심으로 만드는 방법 1. 객체지향 소프트웨어 객체는 현실 세계의 객체를 필드와 메서드로 모델링한 것이다. 필드는 객체 내부에 '선언된 변수'를 의미하고, 메서드는 객체 내부에 '정의된 동작'을 의미한다. 캡슐화 : 필드와 메서드를 하나의 캡슐처럼 포장해 세부 내용을 외부에서 알 수 없도록 감추는 것이다. 상속 : 상위 객체를 상속받은 하위 객체가 상위 객체의 메서드와 필드를 사용하는 것이다. 다형성 : 대입되는 객체에 따라서 매서드를 다르게 동작하도록 구현하는 기술이다. 멀티태스킹 : 운영체제가 CPU에 작업을 줄 때 시간을 잘게 나누어 배분하는 기법 멀티프로세싱 : CPU를 여러 개 사용하여 여러 개의 T..

모든 고급 개발 지식과 업무의 기본 근간은 알게 모르게 우리가 배웠던 cs기본 지식으로 연결된다. [소프트웨어 프로세스 모델] 1. 폭포수 모델 - 사용자의 니즈가 크지 않았기 때문에 사용할 수 있었던 모델 - 프로세스 중 수정해야할 부분들이 계속해서 늘어났기 때문에 나중엔 사용하기 부담스러워진 모델 2. 나선형 모델 - 설계 단계에서 '어 여긴 나중에 고칠수도 있겠는데?' 하는 부분들을 미리 계산해 놓는다. 3. 프로토타입 모델 - ‘당신이 원하는게 이겁니까?’ 하고 물어보고 평가를 통해 다음 프로세스가 결정된다. 4. 통합프로세스 모델 5. 애자일 프로세스 모델 고객의 요구에 민첩하게 대응하고 그때그때 주어지는 문제를 풀어나가는 방법론 프로세스와 도구 중심이 아닌, 상호 소통 중시 문서 중심이 아닌,..