Computer Science 58

[운영체제] 04. Threads & Concurrency

스레드란 무엇인가?웹 서버를 예시로 들어 설명할게요!웹 서버(Web server)웹 페이지를 제공하는 컴퓨터 프로그램웹 서버는 한 번에 많은 클라이언트를 서비스해야 합니다.웹 서버가 입출력(I/O) 작업을 수행하면?블록될 것입니다.다른 클라이언트의 요청을 처리할 수 없습니다.동시 서비스(concurrent service)를 위해 많은 서버 프로세스가 필요합니다.메모리 공간 낭비.프로세스를 생성하는 동안 delay 발생.스레드(Thread)가 필요합니다.Code, data, and resources를 공유할 수 있습니다.Register values and stacks은 공유할 수 없습니다. ThreadCPU utilization의 기본 단위각 프로세스는 여러 스레드를 포함할 수 있습니다.모든 프로세스의 스..

[운영체제] 03. Process

Process Concept(프로세스 개념)운영 체제는 다양한 프로그램을 실행합니다.배치 시스템 - jobsTime-shared systems(시분할 시스템) - user programs 또는 tasks교재에서는 job과 process라는 용어를 번갈아가면서 사용할 거라고 하네요프로세스실행 중인 프로그램(a program in execution)프로세스는 다음을 포함합니다.프로그램 코드(code), 텍스트 섹션(text section)이라고도 함전역 변수 및 정적 변수를 포함하는 데이터 섹션(data section)임시 데이터를 포함하는 스택(stack)함수 매개변수, 반환 주소, 로컬 변수실행 중 동적으로 할당된 메모리를 포함하는 힙(heap)프로그램 카운터(program counter), 프로세서 레..

[운영체제] 02. Operating System Structures

운영체제 서비스 (Operating System Services)운영체제는 사용자에게 다음과 같은 서비스를 제공사용자 인터페이스(User Interface)명령어 인터페이스 (CLI), 그래픽 사용자 인터페이스 (GUI)프로그램 실행(Program execution)프로그램을 메모리에 로드, 실행, 종료I/O 작업(I/O operation)키보드/마우스 입력, 모니터/프린터 출력파일 시스템 조작(File system manipulation)파일 또는 디렉토리 읽기/쓰기, 생성/삭제/검색 등통신(Communications)프로세스 간 정보 교환오류 검출(Error detection)하드웨어 (메모리 오류, power failure)I/O 장치 (네트워크 연결 실패, 프린터 용지 부족)사용자 프로그램 (산술..

[운영체제] 01. Introduction to Operating System

운영체제 정의컴퓨터 시스템의 네 가지 구성 요소사용자 (Users)애플리케이션 (Applications) (워드 프로세서, 웹 브라우저, 게임, …)운영체제 (Operating System)하드웨어 (Hardware) (CPU, 메모리, I/O 장치)운영체제 정의운영체제 (Operating System)애플리케이션과 컴퓨터 하드웨어 사이의 중개자(intermediary) 역할을 함.컴퓨터 하드웨어 자원을 관리.애플리케이션을 위한 일부 서비스를 제공.사용자 관점 (User View)운영체제가 애플리케이션을 실행.운영체제가 컴퓨터 시스템을 사용하기 편리하게 만듦.시스템 관점 (System View)운영체제는 자원 할당자 (Resource Allocator).하드웨어 자원: CPU, 메모리, I/O 장치.소프..

[시스템 프로그래밍] 10. Floating Point Processing

Floating-Point Binary Representation부동 소수점 이진 표현 부동 소수점 십진수는 세 가지 구성 요소를 포함함부호 (Sign), 가수 (Significand 또는 Mantissa), 지수 (Exponent)예: -1.23154 x 10^5에서 부호는 음수, 가수는 1.23154, 지수는 5IEEE Binary Floating-Point RepresentationIEEE 이진 부동 소수점 표현  x86 프로세서는 IEEE 754-1985 표준에 지정된 세 가지 형식을 사용 단정밀도 (Single Precision)32비트: 부호 1비트, 지수 8비트, 가수 23비트. approximate 정규화 범위: 2^-126 ~ 2^127. "short real"이라고도 함.Double P..

[컴퓨터네트워크] 15. 표준 클라이언트/서버 프로토콜 (2)

클라이언트-서버 프로토콜(2)E-mail (전자메일)이용자 간 메시지 교환이 응용 서비스는 지금까지 본 다른 응용과는 다르다.Client/server 프로그래밍은 좀 더 다른 방식으로 구현해야 함중간에 다른 서버를 필요로 함프로토콜SMTPPOPIMAP(SMTP를 주로 사용하고, POP와 IMAP은 나중에 추가된 프로토콜)MIME(Multipurpose Internet Mail Extensions) : 컨텐츠 형식(인코딩 해서 보낼 형식임)이메일 서비스 구조MTA Server/ClientMessage Transfer Agent메일 보낼 때MAA Server/ClientMessage Access Agent메일 읽을 때UA메일 클라이언트 (요즘은 web)그림 13.12에서 Alice와 Bob이 이메일을 교환한..

[컴퓨터네트워크] 14. 표준 클라이언트/서버 프로토콜 (1)

표준 클라이언트/서버 프로토콜 (1)WWW and HTTPWorld Wide Web (abbreviated WWW or Web)가장 많이 사용되는 인터넷 서비스Hyper-Text Transfer Protocol (HTTP)웹 요청과 응답 메시지를 교환하는 프로토콜(보통 웹 요청은 클라이언트가 서버에게, 응답 메시지는 서버가 클라이언트에게)WWWTim Berners-Lee in 1989 at CERNEuropean Organization for Nuclear Research유럽의 여러 연구자들이 다른 위치에 있는 각자의 연구 자료들을 엑세스하기 위해 고안상용 웹은 1990년 초에 시작HTTPHyperText Transfer Protocol (HTTP)웹 페이지의 요청과 응답 전달 프로토콜HTTP 클라이언트..

[컴퓨터네트워크] 13. 응용계층 소개(2)

응용계층 소개(2)C 반복적 프로그래밍TCP 반복적 프로그래밍 (서버)Scoket()으로 소켓 생성Bind()로 지정된 서버 주소와 포트 설정Listen()으로 클라이언트로부터의 연결을 기다리는 준비를 함Accept()를 호출하면, 연결을 기다림 (block)Recv()로 데이터 수신Send()로 데이터 송신TCP 반복적 프로그래밍 (클라이언트)Socket()으로 소켓 생성Connect()로 지정된 서버로 연결 설정 (block)연결 완료, 혹은 에러 시 block 해제Recv()로 데이터 수신Send()로 데이터 송신 Echo 서버 프로그램 Echo 클라이언트 프로그램 Java 반복적 프로그래밍주소와 포트InetAddress classInet4Address classInet6Address classPo..

[컴퓨터네트워크] 12. 응용계층 소개(1)

응용 계층 소개이용자, 혹은 프로그램(프로세스)에게 서비스 제공프로그램을 위한 다양한 네트워크 서비스 제공원격컴퓨터접근, 파일전송, 이메일전송, ...서비스 제공표준(standard) 응용계층 프로토콜(보통 RFC 표준 문서와 절차를 통해서 그 내용을 구현함)비표준(nonstandard, proprietary) 응용계층 프로토콜(개인적인 그룹, 집단에서 자체적으로 구현한 것)응용계층 패러다임Client-server paradigmTraditional paradigmPeer-to-peer paradigmNew paradigmMixed Paradigm 클라이언트-서버 프로그래밍클라이언트는 통신을 시작하고, 요청을 보내는 프로그램서버는 클라이언트의 요청을 서비스하는 응용 프로그램서비스 유형TCPex) 웹, 이..