CS
-
운영체제CS/운영체제 2022. 10. 10. 03:14
운영체제 란? 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 협의의 운영체제(커널) : 운영제제의 핵심 부분으로 메모리에 상주하는 부분 -> 좁은 의미에서의 운영체제 : 커널 광의의 운영 제제 : 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함하는 개념 운영체제의 목적 컴퓨터 시스템에 자원을 효율적으로 관리 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 운영체제의 분류 [동시 작업 가능 여부] 단일 작업 한번에 하나의 작업만 처리 MS-DOS 프롬푸트 상에서 한 명령의 수행을 끝내기 전에 다른 명령을 수행시킬 수 없음 구형 핸드폰, 엘리베이터 등 특수목적을 위해 하나의 작업만을 필요로하는 경우 현대에도 사용됨 다중 작업 현대 운영체제 :..
-
Cookie/SessionCS 2022. 9. 12. 21:49
Connectionless http 프로토콜은 "connectionless, stateless"의 특징을 갖는다. 각각의 서버에서 제공하는 http 프로토콜 버전을 사용하고 있다. HTTP/1.1에서는 keep-alive 헤더를 통해 설정된 횟수 or 시간 만큼 연결상태를 지속한다. HTTP/2.0 에서는 keep-alive 핃르를 무시한다. 대신 웹페이지를 떠날때까지 연결을 열어놓는다. 📌 Cookie 키와 값이 저장되어있는 파일이다. 4kb 까지 저장가능 사용자가 설정하지 않아도 브라우저가 request header 에 쿠키를 자동으로 넣어서 서버에 전송한다. 쿠키에는 세션쿠키, 지속쿠키(persistent cookie)가 존재한다. Cookie 동작 방식 클라이언트가 페이지를 요청한다. 서버에서 쿠..
-
[ 운영체제 ] 6. 가상메모리 와 페이징CS/운영체제 2021. 10. 3. 16:05
전 포스팅 "4. 메모리 구조" 에서 유닉스 계열의 운영체제에서는 프로세스당 4GB 의 메모리를 할당한다고 했다. 그러나 보통 8GB , 16GB 를 사용하는 우리가 아주 많은 프로세스를 돌릴 수 있는 원리는 무엇인가? 이에 대한 해답이 가상메모리에 있다. 1. 가상메모리란? : 메모리가 실제 메모리 보다 많아 보이게 하는 기술 프로세스의 모든 데이터가 당장 필요하지 않는다 프로세스 구조에 데이터들은 가상 주소로 매팽되고, 실제 해당 주소에서 데이터를 실행(읽고 / 쓸때) 만 물리 주소로 바꾸어 주면 된다. CPU (program counter 레지스터) 에는 가상 메모리 주소가 저장되고 이를 사용할때 물리주소 데이터를 전달받아 처리한다. MMU (Memory Management Unit): CPU에 코..
-
[ 운영체제 ] 5. 스레드 와 프로세스CS/운영체제 2021. 9. 28. 13:51
프로세스 : 프로그램을 메모리 상에서 실행중인 작업 스레드 : 프로세스 안에서 실행되는 여러 흐름 단위 0. 동시성 과 병렬성 스레드와 프로세스에 대한 설명에 앞서 동시성과 병렬성 햇갈리는 개념을 정리하고 가겠습니다. 동시성과 병렬성 모두 사용자로 하여금 한번에 여러 작업을 수행할 수 있게 합니다. 이중에서 동시성은 하나의 작업을 일정 시간동안 진행하고 또다른 작업을 일정시간 수행하는 형태이고 병렬성은 물리적으로 여러 작업을 동시에 진행하는 양상을 보입니다. 그리고 물리적으로 여러 작업을 병렬적으로 처리하기 위해서는 멀티 코어를 필요로 합니다. 반면 동시성은 (하드웨어적으로) 싱글 코어에서도 멀티 스레드를 통해 이루어 낼 수 있습니다. 1. 프로세스와 스레드의 차이 데이터 접근 프로세스 간에는 각 프로세..
-
[ 운영체제 ] 4. 메모리 구조 , PC , SPCS/운영체제 2021. 9. 23. 12:49
메모리 구조 프로세스 생성되어 프로그램이 메모리위에 올라가면 다음과 같은 메모리 구조 를 가지게 됩니다. UNIX 시스템은 실행중인 프로세스에게 4GB 의 가상메모리 를 할당합니다 Code , Data ,Bss 영역은 컴파일 시 크기가 결정되고 Heap , Stack 영역은 런타임시 크기가 결정됩니다. 1. TEXT (CODE) Segment 프로그램 실행시 가장 먼저 구성을 이루게 되는 곳으로 프로그램의 코드들이 CPU가 바로 이해할수 있는 (처리할 수 있는 ) 바이너리화 된 바이너리 코드가 저장되는 곳이다. 2. DATA Segment data segment 에는 전역 변수가 올라가게 되고 더 상세히 나누면 DATA 부분과 BSS 부분으로 나뉘는데 각각 초기화 되지 않은 전역 변수 , 초기화된 전역 ..
-
[운영체제 ] 3. 인터럽트 , 컨텍스트 스위칭CS/운영체제 2021. 9. 20. 22:08
1. 인터럽트 CPU 가 프로그램을 실행하고 있을때 , 입출력 하드웨어등의 장치 또는 예외상황이 발생하여 처리가 필요한 경우 CPU 에 알려서 처리하는 기술 현재 실행중인 프로그램의 수행을 미루고 다른 프로그램의 수행을 요구하는 명령 인터럽트는 하드웨어 인터럽트(외부 인터럽트) 와 소프트웨어 인터럽트(내부 인터럽트로 나뉜다.) 소프트웨어 인터럽트(내부 인터럽트) 주로 프로그램 내부에서 잘못된 명령 또는 잘못된 데이터를 사용할경우 발생 나누기 0을 하는 경우 사용자가 운영체제만 사용할 수 있는 자원에 엑세스 하는경우(커널) Overflow / Underflow 가 밣생하는 상황 하드웨어인터럽트(외부인터럽트) 주로 프로그램 외부적 요인에 의해 발생함 키보드등의 IO 관련 이벤트 타이머가 일정한 시간 간격으로..
-
[운영체제 ] 2. 프로세스 상태와 스케줄링 알고리즘CS/운영체제 2021. 9. 18. 02:15
1. 프로세스 스케쥴링 컴퓨터 프로그램 실행 요청 순서에 따라 순차적으로 프로그램을 실행 하는 방식 한번에 등록된 여러 프로그램을 단순히 순차적으로 실행시킴 비선점형 스케쥴러에서 쓰임 다중 사용자 지원을 위해 컴퓨터 응답 시간을 최소화하는 시스템 특정 시간을 기준으로 interupt 를 발생시켜 프로세스들을 cpu에서 전환함 선점형 알고리즘에서 쓰임 RoundRobin 알고리즘이 사용됨 여러 CPU 에서 하나의 프로그램을 병렬로 실행시키는 시스템 프로세스 진행중 해당 프로세스가 blocked 상태라면 CPU가 쉬게 되고 이때 멀티 프로세싱이 효율적일 수 있음 2. 프로세스 상태 - 프로세스는 총 5가지의 상태로 구분된다. 그 중 3가지를 이용하여 스케줄러가 CPU의 사용여부를 판단하게 된다. ready ..
-
[운영체제 ] 1. 운영체제 구조 - 커널 , 시스템 콜 , 쉘 , APICS/운영체제 2021. 9. 18. 01:31
1. Application ( 응용 프로그램 ) , 운영 체제 , 하드웨어의 관계 운영체제는 응용 프로그램이 요청하는 메모리를 허가 및 분배한다. 운영체제는 응용 프로그램이 요청하는 CPU 자원을 규칙에 맞게 제공한다. 운영체제는 응용 프로그램이 요청하는 IO Devieces 사용을 허가 / 제어한다. 응용프로그램이 종료되면 운영체제는 응용프로그램이 점유하고 있던 메모리와 하드웨어를 회수한다. **프로그램과 프로세스의 차이 : 하나의 프로그램도 여러개의 프로세스를 생성할 수 있다. 프로세스는 메모리를 할당 받고 cpu 에서 실행되고 있음을 의미한다. 예를들어 여러개의 메모장을 사용한다면 한개의 프로그램에서 여러개의 프로세스가 생성되는 것이다. 2. 커널모드 파일 입출력, 프로세스 관리 , 하드웨어 접근등..