SlideShare a Scribd company logo
An introduction to
computer
Science
- Operating System 03
2017. 03. 31
황태욱
01 File System
02 Main Memory Management
CONTENTS
03 Further Study
1.1 FAT
Window File System
FAT(File Allocation Table) & NTFS(New Technology File System)
1.2 FAT file System
부트 레코드
파일 할당 테이블
루트 디렉터리
…
클러스터1
클러스터2
클러스터3
클러스터n
시스템 영역 데이터 영역
1.3 UNIX(Linux) file System
부트
블럭
수퍼
블럭
… …
inode list 데이터 블럭
부트 블록: 운영체제를 주기억장치로 올리는 역할을 하는 프로그램이
들어있는 영역, 윈도우의 부트레코드와 유사
슈퍼블럭: 디스크에 대한 다양한 정보를 저장하고 있는 곳으로, 전체 블록의
수, 블록의 크기, 사용 중인 블록의 수, 사용할 수 있는 블록의 번호,
Inode 리스트의 크기, 사용할 수 있는 inode의 번호 등의 정보를 저장한다
Inode 리스트: inode들을 모아놓은 곳, 한 블록에 여러 개의 inode를 저장하고
있다
데이터 블록: 일반적인 파일과 디렉토리 그리고 간접 블록을 저장하는 영역
1.4 Unix file system
inode(Index Node) 파일에 대한 다양한 정보를 저장하는 곳으로 파일마다
하나씩 부여 된다
파일형식
접근 권한
파일 소유자
파일 크기
변경 시간
접근 시간
:
파일 위치
:
10개의 직접 블록 포인터
단일 간접 블록 포인터
이중 간접 블록 포인터
삼중 간접 블록 포인터
2.1 DATA Structure
데이터 구조(data structure)란 program에 의해 쉽게 이용되도록 구성된
데이터들간의 논리적인 관계
자료구조(資料構造, data structure)는 전산학에서 자료를 효율적으로 이용할 수
있도록 컴퓨터에 저장하는 방법이다. 신중히 선택한 자료구조는 보다
효율적인 알고리즘을 사용할 수 있게 한다. 이러한 자료구조의 선택문제는
대개 추상적 자료구조의 선택으로부터 시작하는 경우가 많다. 효과적으로 설계된
자료구조는 실행시간 혹은 메모리 용량과 같은 자원을 최소한으로 사용하면서
연산을 수행하도록 해준다
배열: Array
연결 리스트: Linked List
스택: Stack
큐: Queue
트리: Tree
등이 대표적인 자료 구조이다.
2.2 배열 Array
Array: 같은 Type의 데이터형의 요소들이 동일한 크기로 순서를 갖고 나열되어
있는 집합
C언어의 경우 크기가 n인 arr의 첫번째 요소는 arr[0] … arr[n-1]
이때 arr을 배열이름, [ ]에 들어가는 숫자 또는 변수를 첨자 라고 한다.
다차원 배열
Arr[n][m] 과 같이 표현하고 n 차원까지 확장 가능하다
2.2 선형 리스트 : Linear List
순서에 의해 나열된 데이터가 여러 개인 구조
- 일요일, 월요일, 화요일, 수요일, 목요일, 금요일, 토요일
- 빨강, 주황, 노랑, 초록, 파랑, 남색, 보라
연속리스트와 연결리스트가 있음
연속리스트(contiguous list)는 배열을 이용
연결 리스트(Linked list)는 포인터를 이용
연속리스트 – 삽입과 삭제: 각 데이터를 옮기는 작업이 필요
연결 리스트 – 노드라는 개념을 활용
데이터 영역
포인터 영역
해드 포인터: Head Pointer가 존재하며, 끝에는 NULL로 표현
2.3 Linked List
Singly Linked List : 마지막 노드는 NULL
Circular Linked List : 마지막 노드는 다시 첫번째 노드
Doubly Linked List : 이전 노드 접근을 허용하기 위해 각 포인터는 양쪽을 가르킴
Doubly circular Linked List: 이중 연결 리스트에서 맨 마지막 노드가 맨 처음
노드를 가르키는 구조
2.4 Stack
Stack을 배열로 구현할 수 있고, Linked List로 구현할 수 있다
이때 Stack Pointer 역할로 별도 변수를 배정한다 (TOP 등)
Linked List 구현 Stack은 Main Memory 용량이 허용하는 한 데이터를
삽입 할 수 있다는 장점이 있다.
2.5 Queue
Queue: FIFO – Fist In First Out
배열, Linked List로 구현 가능
배열일 경우 2개의 변수로 구현 (Front, Rear)
2.6 Tree (data sturcture)
Tree: 계층 구조를 표현하기에 적합
Link – 노드와 노드를 연결하는 선
Leaf node / Terminal node : 마지막에 위치한 노드 node
2.7 Tree (data sturcture)
Binary Tree : 모든 노드들의 자식 노드가 두 개 이하인 트리
- Complete Binary tree
- Full binary Tree
순회: Traversal – 이진 노드의 모든 트리를 순서대로 한번씩 방문하는 것
- Preorder [노드방문 – 왼쪽 서브 트리 방문 – 오른쪽 서브 트리 방문]
- inorder[왼쪽 서브 트리 방문 – 노드방문 - 오른쪽 서브 트리 방문]
- postorder[왼쪽 서브 트리 방문 – 오른쪽 서브 트리 방문 - 노드방문]
이진탐색트리: Binary Search Tree
- 같은 데이터를 갖는 노드는 없어야 한다
- 왼쪽 서브트리에 있는 모든 데이터는 현재 노드의 데이터보다 작고
오른쪽 서브 트리에 있는 모든 데이터는 현재 노드의 데이터 보다
크다
- 왼쪽 서브트리 < 노드 < 오른쪽 서브트리
3. Further Study
자료구조 구현
http://robodream.tistory.com/192
1의 보수 2의 보수
http://sk3010.tistory.com/entry/%EB%94%94%EC%A7%80%ED%84%B8-%EC%
Q&A
For further details, please contact us by e-mail
황태욱 : taewook.hwang@gmail.com
010.9576.5105
Kakao: Aldemaya

More Related Content

What's hot

[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)MinGeun Park
 
[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발
[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발
[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발MinGeun Park
 
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
중선 곽
 
폰노이만 머신 이해
폰노이만 머신 이해폰노이만 머신 이해
폰노이만 머신 이해
중선 곽
 
[0602 박민근] Direct2D
[0602 박민근] Direct2D[0602 박민근] Direct2D
[0602 박민근] Direct2D
흥배 최
 
프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법
중선 곽
 
인공지능개론 (머신러닝 중심)
인공지능개론 (머신러닝 중심)인공지능개론 (머신러닝 중심)
인공지능개론 (머신러닝 중심)
SK(주) C&C - 강병호
 
Neural Network Intro [인공신경망 설명]
Neural Network Intro [인공신경망 설명]Neural Network Intro [인공신경망 설명]
Neural Network Intro [인공신경망 설명]
Hyunwoo Kim
 
객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)
Seung-June Lee
 
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
DongMin Choi
 
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기ChangKyu Song
 
알아두면 쓸데있는 신비한 딥러닝 이야기
알아두면 쓸데있는 신비한 딥러닝 이야기알아두면 쓸데있는 신비한 딥러닝 이야기
알아두면 쓸데있는 신비한 딥러닝 이야기
Kwangsik Lee
 
인공신경망
인공신경망인공신경망
인공신경망
종열 현
 
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
ssuserbe87d6
 
인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝
Jinwon Lee
 
Lock free queue
Lock free queueLock free queue
Lock free queue
Bongseok Cho
 
CS4109 Computer System Architecture
CS4109 Computer System ArchitectureCS4109 Computer System Architecture
CS4109 Computer System Architecture
ktosri
 
AtCoder Regular Contest 020 解説
AtCoder Regular Contest 020 解説AtCoder Regular Contest 020 解説
AtCoder Regular Contest 020 解説
AtCoder Inc.
 
LockFree Algorithm
LockFree AlgorithmLockFree Algorithm
LockFree Algorithm
Merry Merry
 
딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해
Hee Won Park
 

What's hot (20)

[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
 
[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발
[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발
[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발
 
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
프로그래머가 알아야 하는 2진수 기반의 컴퓨터 동작 원리
 
폰노이만 머신 이해
폰노이만 머신 이해폰노이만 머신 이해
폰노이만 머신 이해
 
[0602 박민근] Direct2D
[0602 박민근] Direct2D[0602 박민근] Direct2D
[0602 박민근] Direct2D
 
프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법
 
인공지능개론 (머신러닝 중심)
인공지능개론 (머신러닝 중심)인공지능개론 (머신러닝 중심)
인공지능개론 (머신러닝 중심)
 
Neural Network Intro [인공신경망 설명]
Neural Network Intro [인공신경망 설명]Neural Network Intro [인공신경망 설명]
Neural Network Intro [인공신경망 설명]
 
객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)객체지향 개념 (쫌 아는체 하기)
객체지향 개념 (쫌 아는체 하기)
 
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
 
Windows system - memory개념잡기
Windows system - memory개념잡기Windows system - memory개념잡기
Windows system - memory개념잡기
 
알아두면 쓸데있는 신비한 딥러닝 이야기
알아두면 쓸데있는 신비한 딥러닝 이야기알아두면 쓸데있는 신비한 딥러닝 이야기
알아두면 쓸데있는 신비한 딥러닝 이야기
 
인공신경망
인공신경망인공신경망
인공신경망
 
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
 
인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝
 
Lock free queue
Lock free queueLock free queue
Lock free queue
 
CS4109 Computer System Architecture
CS4109 Computer System ArchitectureCS4109 Computer System Architecture
CS4109 Computer System Architecture
 
AtCoder Regular Contest 020 解説
AtCoder Regular Contest 020 解説AtCoder Regular Contest 020 解説
AtCoder Regular Contest 020 解説
 
LockFree Algorithm
LockFree AlgorithmLockFree Algorithm
LockFree Algorithm
 
딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해딥러닝 기본 원리의 이해
딥러닝 기본 원리의 이해
 

Similar to 컴퓨터개론08

자료구조 스택_큐_링크드리스트
자료구조 스택_큐_링크드리스트자료구조 스택_큐_링크드리스트
자료구조 스택_큐_링크드리스트
송미 이
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #04 : 트리 기초, 이진 트리, 우선순위 큐
[SOPT] 데이터 구조 및 알고리즘 스터디 - #04 : 트리 기초, 이진 트리, 우선순위 큐[SOPT] 데이터 구조 및 알고리즘 스터디 - #04 : 트리 기초, 이진 트리, 우선순위 큐
[SOPT] 데이터 구조 및 알고리즘 스터디 - #04 : 트리 기초, 이진 트리, 우선순위 큐
S.O.P.T - Shout Our Passion Together
 
자바로 배우는 자료구조
자바로 배우는 자료구조자바로 배우는 자료구조
자바로 배우는 자료구조
중선 곽
 
[Swift] Data Structure - Binary Tree
[Swift] Data Structure - Binary Tree[Swift] Data Structure - Binary Tree
[Swift] Data Structure - Binary Tree
Bill Kim
 
Data Structures
Data StructuresData Structures
Data Structures
skku_npc
 
새로쓴 대용량 데이터베이스 솔루션 1분리형일체형테이블
새로쓴 대용량 데이터베이스 솔루션 1분리형일체형테이블새로쓴 대용량 데이터베이스 솔루션 1분리형일체형테이블
새로쓴 대용량 데이터베이스 솔루션 1분리형일체형테이블Gordon Lee
 
elasticsearch
elasticsearchelasticsearch
elasticsearch
승우 백
 
오라클 DB 아키텍처와 튜닝
오라클 DB 아키텍처와 튜닝오라클 DB 아키텍처와 튜닝
오라클 DB 아키텍처와 튜닝
철민 권
 
02. data structure and stl
02. data structure and stl02. data structure and stl
02. data structure and stl
승혁 조
 
[Swift] Data Structure - Tree
[Swift] Data Structure - Tree[Swift] Data Structure - Tree
[Swift] Data Structure - Tree
Bill Kim
 
[Swift] Data Structure Introduction
[Swift] Data Structure Introduction[Swift] Data Structure Introduction
[Swift] Data Structure Introduction
Bill Kim
 
HBase 훑어보기
HBase 훑어보기HBase 훑어보기
HBase 훑어보기
beom kyun choi
 
16장. XML 사용하기
16장. XML 사용하기16장. XML 사용하기
16장. XML 사용하기SungHoon Jung
 
Python+numpy pandas 1편
Python+numpy pandas 1편Python+numpy pandas 1편
Python+numpy pandas 1편
Yong Joon Moon
 
하둡 타입과 포맷
하둡 타입과 포맷하둡 타입과 포맷
하둡 타입과 포맷진호 박
 
linux1
linux1linux1
linux1
sjw1969
 
[Swift] Data Structure - Array
[Swift] Data Structure - Array[Swift] Data Structure - Array
[Swift] Data Structure - Array
Bill Kim
 
CS Study - Data Structure 자료 구조. Tree 발표자료
CS Study - Data Structure 자료 구조. Tree 발표자료CS Study - Data Structure 자료 구조. Tree 발표자료
CS Study - Data Structure 자료 구조. Tree 발표자료
Jiwoo Choi
 

Similar to 컴퓨터개론08 (18)

자료구조 스택_큐_링크드리스트
자료구조 스택_큐_링크드리스트자료구조 스택_큐_링크드리스트
자료구조 스택_큐_링크드리스트
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #04 : 트리 기초, 이진 트리, 우선순위 큐
[SOPT] 데이터 구조 및 알고리즘 스터디 - #04 : 트리 기초, 이진 트리, 우선순위 큐[SOPT] 데이터 구조 및 알고리즘 스터디 - #04 : 트리 기초, 이진 트리, 우선순위 큐
[SOPT] 데이터 구조 및 알고리즘 스터디 - #04 : 트리 기초, 이진 트리, 우선순위 큐
 
자바로 배우는 자료구조
자바로 배우는 자료구조자바로 배우는 자료구조
자바로 배우는 자료구조
 
[Swift] Data Structure - Binary Tree
[Swift] Data Structure - Binary Tree[Swift] Data Structure - Binary Tree
[Swift] Data Structure - Binary Tree
 
Data Structures
Data StructuresData Structures
Data Structures
 
새로쓴 대용량 데이터베이스 솔루션 1분리형일체형테이블
새로쓴 대용량 데이터베이스 솔루션 1분리형일체형테이블새로쓴 대용량 데이터베이스 솔루션 1분리형일체형테이블
새로쓴 대용량 데이터베이스 솔루션 1분리형일체형테이블
 
elasticsearch
elasticsearchelasticsearch
elasticsearch
 
오라클 DB 아키텍처와 튜닝
오라클 DB 아키텍처와 튜닝오라클 DB 아키텍처와 튜닝
오라클 DB 아키텍처와 튜닝
 
02. data structure and stl
02. data structure and stl02. data structure and stl
02. data structure and stl
 
[Swift] Data Structure - Tree
[Swift] Data Structure - Tree[Swift] Data Structure - Tree
[Swift] Data Structure - Tree
 
[Swift] Data Structure Introduction
[Swift] Data Structure Introduction[Swift] Data Structure Introduction
[Swift] Data Structure Introduction
 
HBase 훑어보기
HBase 훑어보기HBase 훑어보기
HBase 훑어보기
 
16장. XML 사용하기
16장. XML 사용하기16장. XML 사용하기
16장. XML 사용하기
 
Python+numpy pandas 1편
Python+numpy pandas 1편Python+numpy pandas 1편
Python+numpy pandas 1편
 
하둡 타입과 포맷
하둡 타입과 포맷하둡 타입과 포맷
하둡 타입과 포맷
 
linux1
linux1linux1
linux1
 
[Swift] Data Structure - Array
[Swift] Data Structure - Array[Swift] Data Structure - Array
[Swift] Data Structure - Array
 
CS Study - Data Structure 자료 구조. Tree 발표자료
CS Study - Data Structure 자료 구조. Tree 발표자료CS Study - Data Structure 자료 구조. Tree 발표자료
CS Study - Data Structure 자료 구조. Tree 발표자료
 

More from Edward Hwang

컴퓨터개론13
컴퓨터개론13컴퓨터개론13
컴퓨터개론13
Edward Hwang
 
컴퓨터개론12
컴퓨터개론12컴퓨터개론12
컴퓨터개론12
Edward Hwang
 
컴퓨터개론11
컴퓨터개론11컴퓨터개론11
컴퓨터개론11
Edward Hwang
 
컴퓨터개론10
컴퓨터개론10컴퓨터개론10
컴퓨터개론10
Edward Hwang
 
02 특허와 실용신안 제도
02 특허와 실용신안 제도02 특허와 실용신안 제도
02 특허와 실용신안 제도
Edward Hwang
 
게임디자인 레벨 밸런싱
게임디자인   레벨 밸런싱게임디자인   레벨 밸런싱
게임디자인 레벨 밸런싱
Edward Hwang
 
Understanding of growth hacking 01
Understanding of growth hacking 01Understanding of growth hacking 01
Understanding of growth hacking 01
Edward Hwang
 
Understanding of gamification 03
Understanding of gamification 03Understanding of gamification 03
Understanding of gamification 03
Edward Hwang
 
게임디자인 게임시스템
게임디자인   게임시스템게임디자인   게임시스템
게임디자인 게임시스템
Edward Hwang
 
게임디자인 게임디자인
게임디자인   게임디자인게임디자인   게임디자인
게임디자인 게임디자인
Edward Hwang
 
게임디자인 게임제작 및 시나리오
게임디자인   게임제작 및 시나리오게임디자인   게임제작 및 시나리오
게임디자인 게임제작 및 시나리오
Edward Hwang
 
게임의 분류
게임의 분류게임의 분류
게임의 분류
Edward Hwang
 
게임디자인 게임역사
게임디자인   게임역사게임디자인   게임역사
게임디자인 게임역사
Edward Hwang
 
창업아이디어 2015 2학기
창업아이디어 2015 2학기창업아이디어 2015 2학기
창업아이디어 2015 2학기
Edward Hwang
 
Understanding of gamification 2015
Understanding of gamification 2015Understanding of gamification 2015
Understanding of gamification 2015
Edward Hwang
 
사업계획서 기본요소
사업계획서 기본요소사업계획서 기본요소
사업계획서 기본요소
Edward Hwang
 
May 2015 flow chart 익히기
May 2015 flow chart 익히기May 2015 flow chart 익히기
May 2015 flow chart 익히기
Edward Hwang
 
창업아이디어
창업아이디어창업아이디어
창업아이디어
Edward Hwang
 
앱을 위한 아이디어 2015
앱을 위한 아이디어 2015 앱을 위한 아이디어 2015
앱을 위한 아이디어 2015
Edward Hwang
 
기술 창업 Idea to business
기술 창업 Idea to business기술 창업 Idea to business
기술 창업 Idea to businessEdward Hwang
 

More from Edward Hwang (20)

컴퓨터개론13
컴퓨터개론13컴퓨터개론13
컴퓨터개론13
 
컴퓨터개론12
컴퓨터개론12컴퓨터개론12
컴퓨터개론12
 
컴퓨터개론11
컴퓨터개론11컴퓨터개론11
컴퓨터개론11
 
컴퓨터개론10
컴퓨터개론10컴퓨터개론10
컴퓨터개론10
 
02 특허와 실용신안 제도
02 특허와 실용신안 제도02 특허와 실용신안 제도
02 특허와 실용신안 제도
 
게임디자인 레벨 밸런싱
게임디자인   레벨 밸런싱게임디자인   레벨 밸런싱
게임디자인 레벨 밸런싱
 
Understanding of growth hacking 01
Understanding of growth hacking 01Understanding of growth hacking 01
Understanding of growth hacking 01
 
Understanding of gamification 03
Understanding of gamification 03Understanding of gamification 03
Understanding of gamification 03
 
게임디자인 게임시스템
게임디자인   게임시스템게임디자인   게임시스템
게임디자인 게임시스템
 
게임디자인 게임디자인
게임디자인   게임디자인게임디자인   게임디자인
게임디자인 게임디자인
 
게임디자인 게임제작 및 시나리오
게임디자인   게임제작 및 시나리오게임디자인   게임제작 및 시나리오
게임디자인 게임제작 및 시나리오
 
게임의 분류
게임의 분류게임의 분류
게임의 분류
 
게임디자인 게임역사
게임디자인   게임역사게임디자인   게임역사
게임디자인 게임역사
 
창업아이디어 2015 2학기
창업아이디어 2015 2학기창업아이디어 2015 2학기
창업아이디어 2015 2학기
 
Understanding of gamification 2015
Understanding of gamification 2015Understanding of gamification 2015
Understanding of gamification 2015
 
사업계획서 기본요소
사업계획서 기본요소사업계획서 기본요소
사업계획서 기본요소
 
May 2015 flow chart 익히기
May 2015 flow chart 익히기May 2015 flow chart 익히기
May 2015 flow chart 익히기
 
창업아이디어
창업아이디어창업아이디어
창업아이디어
 
앱을 위한 아이디어 2015
앱을 위한 아이디어 2015 앱을 위한 아이디어 2015
앱을 위한 아이디어 2015
 
기술 창업 Idea to business
기술 창업 Idea to business기술 창업 Idea to business
기술 창업 Idea to business
 

컴퓨터개론08

  • 1. An introduction to computer Science - Operating System 03 2017. 03. 31 황태욱
  • 2. 01 File System 02 Main Memory Management CONTENTS 03 Further Study
  • 3. 1.1 FAT Window File System FAT(File Allocation Table) & NTFS(New Technology File System)
  • 4. 1.2 FAT file System 부트 레코드 파일 할당 테이블 루트 디렉터리 … 클러스터1 클러스터2 클러스터3 클러스터n 시스템 영역 데이터 영역
  • 5. 1.3 UNIX(Linux) file System 부트 블럭 수퍼 블럭 … … inode list 데이터 블럭 부트 블록: 운영체제를 주기억장치로 올리는 역할을 하는 프로그램이 들어있는 영역, 윈도우의 부트레코드와 유사 슈퍼블럭: 디스크에 대한 다양한 정보를 저장하고 있는 곳으로, 전체 블록의 수, 블록의 크기, 사용 중인 블록의 수, 사용할 수 있는 블록의 번호, Inode 리스트의 크기, 사용할 수 있는 inode의 번호 등의 정보를 저장한다 Inode 리스트: inode들을 모아놓은 곳, 한 블록에 여러 개의 inode를 저장하고 있다 데이터 블록: 일반적인 파일과 디렉토리 그리고 간접 블록을 저장하는 영역
  • 6. 1.4 Unix file system inode(Index Node) 파일에 대한 다양한 정보를 저장하는 곳으로 파일마다 하나씩 부여 된다 파일형식 접근 권한 파일 소유자 파일 크기 변경 시간 접근 시간 : 파일 위치 : 10개의 직접 블록 포인터 단일 간접 블록 포인터 이중 간접 블록 포인터 삼중 간접 블록 포인터
  • 7. 2.1 DATA Structure 데이터 구조(data structure)란 program에 의해 쉽게 이용되도록 구성된 데이터들간의 논리적인 관계 자료구조(資料構造, data structure)는 전산학에서 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법이다. 신중히 선택한 자료구조는 보다 효율적인 알고리즘을 사용할 수 있게 한다. 이러한 자료구조의 선택문제는 대개 추상적 자료구조의 선택으로부터 시작하는 경우가 많다. 효과적으로 설계된 자료구조는 실행시간 혹은 메모리 용량과 같은 자원을 최소한으로 사용하면서 연산을 수행하도록 해준다 배열: Array 연결 리스트: Linked List 스택: Stack 큐: Queue 트리: Tree 등이 대표적인 자료 구조이다.
  • 8. 2.2 배열 Array Array: 같은 Type의 데이터형의 요소들이 동일한 크기로 순서를 갖고 나열되어 있는 집합 C언어의 경우 크기가 n인 arr의 첫번째 요소는 arr[0] … arr[n-1] 이때 arr을 배열이름, [ ]에 들어가는 숫자 또는 변수를 첨자 라고 한다. 다차원 배열 Arr[n][m] 과 같이 표현하고 n 차원까지 확장 가능하다
  • 9. 2.2 선형 리스트 : Linear List 순서에 의해 나열된 데이터가 여러 개인 구조 - 일요일, 월요일, 화요일, 수요일, 목요일, 금요일, 토요일 - 빨강, 주황, 노랑, 초록, 파랑, 남색, 보라 연속리스트와 연결리스트가 있음 연속리스트(contiguous list)는 배열을 이용 연결 리스트(Linked list)는 포인터를 이용 연속리스트 – 삽입과 삭제: 각 데이터를 옮기는 작업이 필요 연결 리스트 – 노드라는 개념을 활용 데이터 영역 포인터 영역 해드 포인터: Head Pointer가 존재하며, 끝에는 NULL로 표현
  • 10. 2.3 Linked List Singly Linked List : 마지막 노드는 NULL Circular Linked List : 마지막 노드는 다시 첫번째 노드 Doubly Linked List : 이전 노드 접근을 허용하기 위해 각 포인터는 양쪽을 가르킴 Doubly circular Linked List: 이중 연결 리스트에서 맨 마지막 노드가 맨 처음 노드를 가르키는 구조
  • 11. 2.4 Stack Stack을 배열로 구현할 수 있고, Linked List로 구현할 수 있다 이때 Stack Pointer 역할로 별도 변수를 배정한다 (TOP 등) Linked List 구현 Stack은 Main Memory 용량이 허용하는 한 데이터를 삽입 할 수 있다는 장점이 있다.
  • 12. 2.5 Queue Queue: FIFO – Fist In First Out 배열, Linked List로 구현 가능 배열일 경우 2개의 변수로 구현 (Front, Rear)
  • 13. 2.6 Tree (data sturcture) Tree: 계층 구조를 표현하기에 적합 Link – 노드와 노드를 연결하는 선 Leaf node / Terminal node : 마지막에 위치한 노드 node
  • 14. 2.7 Tree (data sturcture) Binary Tree : 모든 노드들의 자식 노드가 두 개 이하인 트리 - Complete Binary tree - Full binary Tree 순회: Traversal – 이진 노드의 모든 트리를 순서대로 한번씩 방문하는 것 - Preorder [노드방문 – 왼쪽 서브 트리 방문 – 오른쪽 서브 트리 방문] - inorder[왼쪽 서브 트리 방문 – 노드방문 - 오른쪽 서브 트리 방문] - postorder[왼쪽 서브 트리 방문 – 오른쪽 서브 트리 방문 - 노드방문] 이진탐색트리: Binary Search Tree - 같은 데이터를 갖는 노드는 없어야 한다 - 왼쪽 서브트리에 있는 모든 데이터는 현재 노드의 데이터보다 작고 오른쪽 서브 트리에 있는 모든 데이터는 현재 노드의 데이터 보다 크다 - 왼쪽 서브트리 < 노드 < 오른쪽 서브트리
  • 15. 3. Further Study 자료구조 구현 http://robodream.tistory.com/192 1의 보수 2의 보수 http://sk3010.tistory.com/entry/%EB%94%94%EC%A7%80%ED%84%B8-%EC%
  • 16. Q&A For further details, please contact us by e-mail 황태욱 : taewook.hwang@gmail.com 010.9576.5105 Kakao: Aldemaya